@@ -3,13 +3,11 @@ package main
33import (
44 "context"
55 "io"
6- "log"
6+ "log/slog "
77 "os"
88
9- "github.com/function61/gokit/app/dynversion "
9+ "github.com/function61/gokit/app/cli "
1010 "github.com/function61/gokit/encoding/jsonfile"
11- "github.com/function61/gokit/log/logex"
12- "github.com/function61/gokit/os/osutil"
1311 "github.com/function61/ubackup/pkg/ubbackup"
1412 "github.com/function61/ubackup/pkg/ubconfig"
1513 "github.com/function61/ubackup/pkg/ubtypes"
@@ -18,22 +16,15 @@ import (
1816
1917func main () {
2018 app := & cobra.Command {
21- Use : os .Args [0 ],
22- Short : "Backs up your stateful containers" ,
23- Version : dynversion .Version ,
19+ Short : "Backs up your stateful containers" ,
2420 }
2521
2622 app .AddCommand (& cobra.Command {
2723 Use : "now" ,
2824 Short : "Takes a backup now" ,
2925 Args : cobra .NoArgs ,
30- Run : func (cmd * cobra.Command , args []string ) {
31- rootLogger := logex .StandardLogger ()
32-
33- osutil .ExitIfError (runBackup (
34- osutil .CancelOnInterruptOrTerminate (logex .Prefix ("main" , rootLogger )),
35- rootLogger ,
36- ))
26+ RunE : func (cmd * cobra.Command , args []string ) error {
27+ return runBackup (cmd .Context ())
3728 },
3829 })
3930
@@ -45,60 +36,48 @@ func main() {
4536 app .AddCommand (decryptionKeyGenerateEntry ())
4637 app .AddCommand (decryptionKeyToEncryptionKeyEntry ())
4738
48- osutil . ExitIfError ( app . Execute () )
39+ cli . Execute (app )
4940}
5041
5142func manualEntry () * cobra.Command {
52- manual := func (ctx context.Context , serviceName string , taskId string , backupStream io.Reader , logger * log .Logger ) error {
43+ manual := func (ctx context.Context , serviceName string , taskId string , backupStream io.Reader , logger * slog .Logger ) error {
5344 conf , err := ubconfig .ReadFromEnvOrFile ()
5445 if err != nil {
5546 return err
5647 }
5748
5849 if SupportsSettingPriorities {
59- if err := SetLowCpuPriority (); err != nil {
50+ if err := SetLowCPUPriority (); err != nil {
6051 return err
6152 }
6253 }
6354
6455 backup := ubtypes.BackupTarget {
6556 ServiceName : serviceName ,
66- TaskId : taskId ,
57+ TaskID : taskId ,
6758 Snapshotter : ubtypes .CustomStream (func (backupSink io.Writer ) error {
6859 _ , err := io .Copy (backupSink , backupStream )
6960 return err
7061 }),
7162 }
7263
73- return ubbackup .BackupAndStore (
74- ctx ,
75- ubtypes .BackupForTarget (backup ),
76- * conf ,
77- logger )
64+ return ubbackup .BackupAndStore (ctx , ubtypes .BackupForTarget (backup ), * conf , logger )
7865 }
7966
8067 return & cobra.Command {
8168 Use : "manual-backup [serviceName] [taskId]" ,
8269 Short : "Compress+encrypt+upload one manual backup (from stdin)" ,
8370 Args : cobra .ExactArgs (2 ),
84- Run : func (cmd * cobra.Command , args []string ) {
85- rootLogger := logex .StandardLogger ()
86-
87- osutil .ExitIfError (manual (
88- osutil .CancelOnInterruptOrTerminate (rootLogger ),
89- args [0 ],
90- args [1 ],
91- os .Stdin ,
92- rootLogger ))
71+ RunE : func (cmd * cobra.Command , args []string ) error {
72+ return manual (cmd .Context (), args [0 ], args [1 ], os .Stdin , slog .Default ())
9373 },
9474 }
9575}
9676
9777func configEntry () * cobra.Command {
9878 cmd := & cobra.Command {
99- Use : "config" ,
100- Short : "Commands related to the configuration file" ,
101- Version : dynversion .Version ,
79+ Use : "config" ,
80+ Short : "Commands related to the configuration file" ,
10281 }
10382
10483 cmd .AddCommand (configExampleEntry ())
@@ -112,8 +91,8 @@ func configValidateEntry() *cobra.Command {
11291 Use : "validate" ,
11392 Short : "Validates your config file (from stdin)" ,
11493 Args : cobra .NoArgs ,
115- Run : func (cmd * cobra.Command , args []string ) {
116- osutil . ExitIfError ( jsonfile .UnmarshalDisallowUnknownFields (os .Stdin , & ubconfig.Config {}) )
94+ RunE : func (_ * cobra.Command , _ []string ) error {
95+ return jsonfile .UnmarshalDisallowUnknownFields (os .Stdin , & ubconfig.Config {})
11796 },
11897 }
11998}
@@ -126,8 +105,8 @@ func configExampleEntry() *cobra.Command {
126105 Use : "example" ,
127106 Short : "Shows you an example config file" ,
128107 Args : cobra .NoArgs ,
129- Run : func (cmd * cobra.Command , args []string ) {
130- osutil . ExitIfError ( jsonfile .Marshal (os .Stdout , ubconfig .DefaultConfig (pubkeyFilePath , kitchenSink ) ))
108+ RunE : func (_ * cobra.Command , _ []string ) error {
109+ return jsonfile .Marshal (os .Stdout , ubconfig .DefaultConfig (pubkeyFilePath , kitchenSink ))
131110 },
132111 }
133112
0 commit comments