@@ -3,14 +3,17 @@ package command
33import (
44 "fmt"
55 "os"
6+ "strings"
67
78 "github.com/spf13/cobra"
9+
10+ "github.com/gladmo/leetcode/leet"
811)
912
1013var backupCmd = & cobra.Command {
1114 Use : "backup [question_id|leetcode_url]" ,
1215 Short : "backup you complete questions to solutions" ,
13- Long : "恢复所有问题为默认状态,并将 serial 目录的所有问题覆盖到 tag 目录下 " ,
16+ Long : "将你实现的算法备份到 solutions 目录,贡献代码者此命令很有用 " ,
1417 Run : func (cmd * cobra.Command , args []string ) {
1518 if len (args ) > 1 {
1619 cmd .Println ("参数异常" )
@@ -19,67 +22,51 @@ var backupCmd = &cobra.Command{
1922 return
2023 }
2124
22- fmt .Println ("功能开发中..." )
25+ override , err := cmd .PersistentFlags ().GetBool ("override-backup" )
26+ if err != nil {
27+ fmt .Println (err .Error ())
28+ }
29+
30+ if len (args ) == 1 {
31+ param := leet .Parse (strings .TrimSpace (args [0 ]))
32+
33+ withDetail , err := cmd .PersistentFlags ().GetBool ("with-detail" )
34+ if err != nil {
35+ fmt .Println (err .Error ())
36+ }
2337
24- // if len(args) == 1 {
25- // param := leet.Parse(strings.TrimSpace(args[0]))
26- //
27- // withDetail, err := cmd.PersistentFlags().GetBool("with-detail")
28- // if err != nil {
29- // fmt.Println(err.Error())
30- // }
31- //
32- // info := leet.GetQuestionInfo(param)
33- // info.Print(withDetail)
34- //
35- // for idx, dir := range info.SaveDir {
36- // for _, language := range info.Languages {
37- // err = leet.ToBeClear{
38- // Dir: dir,
39- // Language: language,
40- // }.Clear()
41- // if err != nil {
42- // fmt.Println(err.Error())
43- // }
44- // }
45- //
46- // if idx > 0 {
47- // err = leet.CopyDirectory(info.SaveDir[0], info.SaveDir[idx])
48- // if err != nil {
49- // fmt.Println(err.Error())
50- // }
51- // }
52- // }
53- //
54- // } else {
55- // titles := leet.GetAllQuestionTitleSlug()
56- //
57- // for _, title := range titles {
58- // info := leet.GetQuestionInfo(title)
59- // for idx, dir := range info.SaveDir {
60- // for _, language := range info.Languages {
61- // err := leet.ToBeClear{
62- // Dir: dir,
63- // Language: language,
64- // }.Clear()
65- // if err != nil {
66- // fmt.Println(err.Error())
67- // }
68- // }
69- //
70- // if idx > 0 {
71- // err := leet.CopyDirectory(info.SaveDir[0], info.SaveDir[idx])
72- // if err != nil {
73- // fmt.Println(err.Error())
74- // }
75- // }
76- // }
77- // }
78- // }
38+ info := leet .GetQuestionInfo (param )
39+ info .Print (withDetail )
40+
41+ for _ , dir := range info .SaveDir {
42+ err = leet.BackupClear {
43+ Dir : dir ,
44+ }.Backup (override )
45+ if err != nil {
46+ fmt .Println (err .Error ())
47+ }
48+ }
49+
50+ } else {
51+ titles := leet .GetAllQuestionTitleSlug ()
52+
53+ for _ , title := range titles {
54+ info := leet .GetQuestionInfo (title )
55+ for _ , dir := range info .SaveDir {
56+ err = leet.BackupClear {
57+ Dir : dir ,
58+ }.Backup (override )
59+ if err != nil {
60+ fmt .Println (err .Error ())
61+ }
62+ }
63+ }
64+ }
7965
8066 },
8167}
8268
8369func init () {
70+ backupCmd .PersistentFlags ().Bool ("override-backup" , false , "override-backup" )
8471 backupCmd .PersistentFlags ().Bool ("with-detail" , false , "with-detail" )
8572}
0 commit comments