summaryrefslogtreecommitdiff
path: root/internal/platforms
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-12-11 23:09:28 +0200
committerPaul Buetow <paul@buetow.org>2024-12-11 23:09:28 +0200
commit121d2877cc7ed0aaf0bbe5c57b86abba982b0441 (patch)
tree46893a05b71aaf6b25e971adda6126ae766eae7b /internal/platforms
parent0f5ecb2715876d05bed8e54d7bd30754e57bcdc4 (diff)
initial summary support
Diffstat (limited to 'internal/platforms')
-rw-r--r--internal/platforms/platform.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/platforms/platform.go b/internal/platforms/platform.go
index e5bbd22..f9ff84d 100644
--- a/internal/platforms/platform.go
+++ b/internal/platforms/platform.go
@@ -62,23 +62,27 @@ func (p Platform) Post(ctx context.Context, args config.Args, sizeLimit int, en
}
func ExpandAliases(shareTag string) (string, error) {
- a := make(map[string]struct{}, len(aliases))
+
parts := strings.Split(shareTag, ":")
if parts[0] != "share" {
return "", fmt.Errorf("expected share tag, but got '%s' in '%s'", parts[0], shareTag)
}
elems := []string{"share"}
- // Dedup
+ dedup := make(map[string]struct{}, len(aliases))
+
for _, alias := range parts[1:] {
- a[alias] = struct{}{}
- }
- for alias := range a {
platformStr, ok := aliases[alias]
if !ok {
return "", fmt.Errorf("invalid platform alias '%s' in '%s'", alias, shareTag)
}
+ if _, ok := dedup[platformStr]; ok {
+ // Duplicate, ignore
+ continue
+ }
elems = append(elems, platformStr)
+ dedup[platformStr] = struct{}{}
}
+
return strings.Join(elems, ":"), nil
}