Checkpoint audio-only Skald fork work

This commit is contained in:
Storm Dragon
2026-05-18 13:06:57 -04:00
parent a8ada950d5
commit 965347cad4
48 changed files with 1080 additions and 3651 deletions
+35 -35
View File
@@ -66,23 +66,23 @@ var commands = map[string]command{
description: "delete a user's password",
},
"list-halls": {
command: listGroupsCmd,
command: listHallsCmd,
description: "list halls",
},
"show-hall": {
command: showGroupCmd,
command: showHallCmd,
description: "show hall definition",
},
"create-hall": {
command: createGroupCmd,
command: createHallCmd,
description: "create a hall",
},
"update-hall": {
command: updateGroupCmd,
command: updateHallCmd,
description: "change a hall's definition",
},
"delete-hall": {
command: deleteGroupCmd,
command: deleteHallCmd,
description: "delete a hall",
},
"list-users": {
@@ -412,8 +412,8 @@ func initialSetupCmd(cmdname string, args []string) {
}
config := hall.Configuration{
WritableGroups: true,
Users: users,
WritableHalls: true,
Users: users,
}
encoder := json.NewEncoder(skaldConfig)
@@ -795,9 +795,9 @@ func stdinJSON(doit bool) (map[string]any, error) {
return data, nil
}
func createGroupCmd(cmdname string, args []string) {
func createHallCmd(cmdname string, args []string) {
var hallname string
var unrestrictedTokens, autoSubgroups boolOption
var unrestrictedTokens, autoSubhalls boolOption
var doJSON bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
@@ -808,8 +808,8 @@ func createGroupCmd(cmdname string, args []string) {
cmd.Var(&unrestrictedTokens, "unrestricted-tokens",
"allow ordinary users to create tokens",
)
cmd.Var(&autoSubgroups, "auto-subgroups",
"create subgroups automatically",
cmd.Var(&autoSubhalls, "auto-subhalls",
"create subhalls automatically",
)
cmd.BoolVar(&doJSON, "json", false,
"read JSON template from standard input",
@@ -842,8 +842,8 @@ func createGroupCmd(cmdname string, args []string) {
if unrestrictedTokens.set {
data["unrestricted-tokens"] = unrestrictedTokens.value
}
if autoSubgroups.set {
data["auto-subgroups"] = autoSubgroups.value
if autoSubhalls.set {
data["auto-subhalls"] = autoSubhalls.value
}
err = putJSON(u, data, false)
@@ -852,7 +852,7 @@ func createGroupCmd(cmdname string, args []string) {
}
}
func deleteGroupCmd(cmdname string, args []string) {
func deleteHallCmd(cmdname string, args []string) {
var hallname string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
@@ -886,9 +886,9 @@ func deleteGroupCmd(cmdname string, args []string) {
}
}
func updateGroupCmd(cmdname string, args []string) {
func updateHallCmd(cmdname string, args []string) {
var hallname string
var unrestrictedTokens, autoSubgroups boolOption
var unrestrictedTokens, autoSubhalls boolOption
var doJSON bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
@@ -899,8 +899,8 @@ func updateGroupCmd(cmdname string, args []string) {
cmd.Var(&unrestrictedTokens, "unrestricted-tokens",
"allow ordinary users to create tokens",
)
cmd.Var(&autoSubgroups, "auto-subgroups",
"create subgroups automatically",
cmd.Var(&autoSubhalls, "auto-subhalls",
"create subhalls automatically",
)
cmd.BoolVar(&doJSON, "json", false,
"read JSON template from standard input",
@@ -936,14 +936,14 @@ func updateGroupCmd(cmdname string, args []string) {
if unrestrictedTokens.set {
m["unrestricted-tokens"] = unrestrictedTokens.value
}
if autoSubgroups.set {
m["auto-subgroups"] = autoSubgroups.value
if autoSubhalls.set {
m["auto-subhalls"] = autoSubhalls.value
}
return m
})
if err != nil {
log.Fatalf("Update group: %v", err)
log.Fatalf("Update hall: %v", err)
}
}
@@ -1269,7 +1269,7 @@ func deleteUserCmd(cmdname string, args []string) {
}
}
func showGroupCmd(cmdname string, args []string) {
func showHallCmd(cmdname string, args []string) {
var hallname string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
@@ -1306,7 +1306,7 @@ func showGroupCmd(cmdname string, args []string) {
}
}
func listGroupsCmd(cmdname string, args []string) {
func listHallsCmd(cmdname string, args []string) {
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
"%v [option...] %v [pattern...]\n",
@@ -1320,17 +1320,17 @@ func listGroupsCmd(cmdname string, args []string) {
log.Fatalf("Build URL: %v", err)
}
var groups []string
_, err = getJSON(u, &groups)
var halls []string
_, err = getJSON(u, &halls)
if err != nil {
log.Fatalf("Get halls: %v", err)
}
sort.Slice(groups, func(i, j int) bool {
return groups[i] < groups[j]
sort.Slice(halls, func(i, j int) bool {
return halls[i] < halls[j]
})
for _, g := range groups {
for _, h := range halls {
if len(patterns) > 0 {
found, err := match(patterns, g)
found, err := match(patterns, h)
if err != nil {
log.Fatalf("Match: %v", err)
}
@@ -1338,7 +1338,7 @@ func listGroupsCmd(cmdname string, args []string) {
continue
}
}
fmt.Println(g)
fmt.Println(h)
}
}
@@ -1409,7 +1409,7 @@ func listTokensCmd(cmdname string, args []string) {
exp = tt.Expires.Format(time.DateTime)
}
var perms []byte
if tt.IncludeSubgroups {
if tt.IncludeSubhalls {
perms = append(perms, 'H')
}
for _, p := range tt.Permissions {
@@ -1432,13 +1432,13 @@ func listTokensCmd(cmdname string, args []string) {
func createTokenCmd(cmdname string, args []string) {
var hallname stringOption
var username, permissions string
var includeSubgroups boolOption
var includeSubhalls boolOption
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname, "%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.Var(&hallname, "hall", "hall `name`")
cmd.Var(&includeSubgroups, "include-subgroups", "include subgroups")
cmd.Var(&includeSubhalls, "include-subhalls", "include subhalls")
cmd.StringVar(&username, "user", "", "encode user `name` in token")
cmd.StringVar(&permissions, "permissions", "present", "permissions")
cmd.Parse(args)
@@ -1464,8 +1464,8 @@ func createTokenCmd(cmdname string, args []string) {
if username != "" {
t["username"] = username
}
if includeSubgroups.set {
t["includeSubgroups"] = includeSubgroups.value
if includeSubhalls.set {
t["includeSubhalls"] = includeSubhalls.value
}
u, err := url.JoinPath(