From c083e215a362ebe3d667a97b9e94190c8cf703bd Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 7 Jan 2021 12:29:36 +0100 Subject: [PATCH] Improve name cleaner --- utils/osdetail/binmeta.go | 6 ++++++ utils/osdetail/binmeta_test.go | 2 ++ 2 files changed, 8 insertions(+) diff --git a/utils/osdetail/binmeta.go b/utils/osdetail/binmeta.go index d377075..391be99 100644 --- a/utils/osdetail/binmeta.go +++ b/utils/osdetail/binmeta.go @@ -11,6 +11,7 @@ var ( nameOnly = regexp.MustCompile("^[A-Za-z0-9]+$") delimitersAtStart = regexp.MustCompile("^[^A-Za-z0-9]+") delimitersOnly = regexp.MustCompile("^[^A-Za-z0-9]+$") + cleanName = regexp.MustCompile(`["']`) ) // GenerateBinaryNameFromPath generates a more human readable binary name from @@ -67,6 +68,11 @@ func GenerateBinaryNameFromPath(path string) string { func cleanFileDescription(fileDescr string) string { fields := strings.Fields(fileDescr) + // Clean out and `"` and `'`. + for i := range fields { + fields[i] = cleanName.ReplaceAllString(fields[i], "") + } + // If there is a 1 or 2 character delimiter field, only use fields before it. endIndex := len(fields) for i, field := range fields { diff --git a/utils/osdetail/binmeta_test.go b/utils/osdetail/binmeta_test.go index 41f32c7..b0aa87e 100644 --- a/utils/osdetail/binmeta_test.go +++ b/utils/osdetail/binmeta_test.go @@ -26,6 +26,8 @@ func TestCleanFileDescription(t *testing.T) { assert.Equal(t, "Product Name", cleanFileDescription("Product Name :: Does this and that.")) assert.Equal(t, "/ Product Name", cleanFileDescription("/ Product Name")) assert.Equal(t, "Product", cleanFileDescription("Product / Name")) + assert.Equal(t, "Software 2", cleanFileDescription("Software 2")) + assert.Equal(t, "Launcher for Software 2", cleanFileDescription("Launcher for 'Software 2'")) assert.Equal(t, "", cleanFileDescription(". / Name")) assert.Equal(t, "", cleanFileDescription(". ")) assert.Equal(t, "", cleanFileDescription("."))