summaryrefslogtreecommitdiff
path: root/internal/platforms
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-11-27 17:05:43 +0200
committerPaul Buetow <paul@buetow.org>2024-11-27 17:05:43 +0200
commit89d391bd37e27bc264e92911df12a78354be9a5f (patch)
treede464115de03929b924342ffffe64f82522c1099 /internal/platforms
parent5266c37d3e70fa8f3bb683cd91ffbfeeaac8bc79 (diff)
more fixes
Diffstat (limited to 'internal/platforms')
-rw-r--r--internal/platforms/platform.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/internal/platforms/platform.go b/internal/platforms/platform.go
index 3eae4a8..e5bbd22 100644
--- a/internal/platforms/platform.go
+++ b/internal/platforms/platform.go
@@ -60,3 +60,25 @@ func (p Platform) Post(ctx context.Context, args config.Args, sizeLimit int, en
fmt.Print("\n")
return nil
}
+
+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
+ 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)
+ }
+ elems = append(elems, platformStr)
+ }
+ return strings.Join(elems, ":"), nil
+}