diff options
| author | Paul Buetow <paul@buetow.org> | 2024-11-27 17:05:43 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-11-27 17:05:43 +0200 |
| commit | 89d391bd37e27bc264e92911df12a78354be9a5f (patch) | |
| tree | de464115de03929b924342ffffe64f82522c1099 /internal/platforms | |
| parent | 5266c37d3e70fa8f3bb683cd91ffbfeeaac8bc79 (diff) | |
more fixes
Diffstat (limited to 'internal/platforms')
| -rw-r--r-- | internal/platforms/platform.go | 22 |
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 +} |
