Fix name fragment grouping

This commit is contained in:
Daniel 2021-02-19 09:41:31 +01:00
parent 80588d5a53
commit 8a1917c4e0
3 changed files with 13 additions and 2 deletions

View file

@ -30,12 +30,15 @@ func GenerateBinaryNameFromPath(path string) string {
segments = segments[:len(segments)-1] segments = segments[:len(segments)-1]
} }
// Debugging snippet:
// fmt.Printf("segments: %s\n", segments)
// Go through segments and collect name parts. // Go through segments and collect name parts.
nameParts := make([]string, 0, len(segments)) nameParts := make([]string, 0, len(segments))
var fragments string var fragments string
for _, segment := range segments { for _, segment := range segments {
// Group very short segments. // Group very short segments.
if len(segment) <= 3 { if len(delimitersAtStart.ReplaceAllString(segment, "")) <= 2 {
fragments += segment fragments += segment
continue continue
} else if fragments != "" { } else if fragments != "" {
@ -51,6 +54,9 @@ func GenerateBinaryNameFromPath(path string) string {
nameParts = append(nameParts, fragments) nameParts = append(nameParts, fragments)
} }
// Debugging snippet:
// fmt.Printf("parts: %s\n", nameParts)
// Post-process name parts // Post-process name parts
for i := range nameParts { for i := range nameParts {
// Remove any leading delimiters. // Remove any leading delimiters.
@ -62,6 +68,9 @@ func GenerateBinaryNameFromPath(path string) string {
} }
} }
// Debugging snippet:
// fmt.Printf("final: %s\n", nameParts)
return strings.Join(nameParts, " ") return strings.Join(nameParts, " ")
} }

View file

@ -17,6 +17,7 @@ func TestGenerateBinaryNameFromPath(t *testing.T) {
assert.Equal(t, "Win Store App", GenerateBinaryNameFromPath("WinStore.App.exe")) assert.Equal(t, "Win Store App", GenerateBinaryNameFromPath("WinStore.App.exe"))
assert.Equal(t, "Test Script", GenerateBinaryNameFromPath(".test-script")) assert.Equal(t, "Test Script", GenerateBinaryNameFromPath(".test-script"))
assert.Equal(t, "Browser Broker", GenerateBinaryNameFromPath("browser_broker.exe")) assert.Equal(t, "Browser Broker", GenerateBinaryNameFromPath("browser_broker.exe"))
assert.Equal(t, "Virtual Box VM", GenerateBinaryNameFromPath("VirtualBoxVM"))
} }
func TestCleanFileDescription(t *testing.T) { func TestCleanFileDescription(t *testing.T) {

View file

@ -7,7 +7,8 @@ import (
"strings" "strings"
) )
func runPowershellCmd(script string) (output string, err error) { // RunPowershellCmd runs a powershell command and returns its output.
func RunPowershellCmd(script string) (output string, err error) {
// Create command to execute. // Create command to execute.
cmd := exec.Command( cmd := exec.Command(
"powershell.exe", "powershell.exe",