From a7d445c021c045daaf8a43f5106beb9e54e924c2 Mon Sep 17 00:00:00 2001 From: Yonah Date: Thu, 19 Mar 2026 00:42:31 +0900 Subject: [PATCH] cmd/streamdata: init sub-command This initialises a new channel's on-disk representation. Signed-off-by: Yonah --- cmd/streamdata/main.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/cmd/streamdata/main.go b/cmd/streamdata/main.go index 5ae23d4..9b57ade 100644 --- a/cmd/streamdata/main.go +++ b/cmd/streamdata/main.go @@ -44,6 +44,44 @@ func main() { "Channel directory to open", ) + c.NewCommand( + "init", + "Create an empty channel", + func(args []string) (err error) { + if channel != nil { + if err = channel.Close(); err != nil { + return + } + channel = nil + } + + var pathname string + switch len(args) { + case 0: + pathname = "." + + case 1: + pathname = args[0] + + default: + return errors.New("init requires 1 argument") + } + + defer toErr(&err) + isattyStd() + br := bufio.NewReader(os.Stdin) + + var v streamdata.Channel + v.Identifier = require(promptUint(br, "Identifier: ")) + v.Name = require(prompt(br, "Channel name: ")) + if err = v.Create(pathname); err != nil { + return + } + channel = &v + return + }, + ) + c.NewCommand( "add", "Add a VOD to the channel",