@@ -15,7 +15,7 @@ import (
1515 "github.com/theckman/yacspin"
1616)
1717
18- func Clone (cfg * config.AssignmentConfig ) {
18+ func Clone (cfg * config.AssignmentConfig , noSpinner bool ) {
1919 auth , err := GetAuth ()
2020 if err != nil {
2121 fmt .Printf ("error: %v" , err )
@@ -26,11 +26,11 @@ func Clone(cfg *config.AssignmentConfig) {
2626 case config .PerStudent :
2727 for _ , stud := range cfg .Students {
2828 suffix := cfg .RepoSuffix (stud )
29- clone (localpath (cfg , suffix ), cfg .Clone .Branch , cloneurl (cfg , suffix ), auth , cfg .Clone .Force )
29+ clone (localpath (cfg , suffix ), cfg .Clone .Branch , cloneurl (cfg , suffix ), auth , cfg .Clone .Force , noSpinner )
3030 }
3131 case config .PerGroup :
3232 for _ , grp := range cfg .Groups {
33- clone (localpath (cfg , grp .Name ), cfg .Clone .Branch , cloneurl (cfg , grp .Name ), auth , cfg .Clone .Force )
33+ clone (localpath (cfg , grp .Name ), cfg .Clone .Branch , cloneurl (cfg , grp .Name ), auth , cfg .Clone .Force , noSpinner )
3434 }
3535 }
3636}
@@ -45,7 +45,7 @@ func localpath(cfg *config.AssignmentConfig, suffix string) string {
4545 return fmt .Sprintf ("%s/%s-%s" , cfg .Clone .LocalPath , cfg .Name , suffix )
4646}
4747
48- func clone (localpath , branch , cloneurl string , auth ssh.AuthMethod , force bool ) {
48+ func clone (localpath , branch , cloneurl string , auth ssh.AuthMethod , force bool , noSpinner bool ) {
4949 cfg := yacspin.Config {
5050 Frequency : 100 * time .Millisecond ,
5151 CharSet : yacspin .CharSets [69 ],
@@ -62,49 +62,65 @@ func clone(localpath, branch, cloneurl string, auth ssh.AuthMethod, force bool)
6262 StopFailColors : []string {"fgRed" },
6363 }
6464
65- spinner , err := yacspin .New (cfg )
66- if err != nil {
67- log .Debug ().Err (err ).Msg ("cannot create spinner" )
68- }
69- err = spinner .Start ()
70- if err != nil {
71- log .Debug ().Err (err ).Msg ("cannot start spinner" )
65+ var spinner * yacspin.Spinner
66+
67+ if ! noSpinner {
68+ spinner , err := yacspin .New (cfg )
69+ if err != nil {
70+ log .Debug ().Err (err ).Msg ("cannot create spinner" )
71+ }
72+ err = spinner .Start ()
73+ if err != nil {
74+ log .Debug ().Err (err ).Msg ("cannot start spinner" )
75+ }
7276 }
7377
7478 if force {
75- spinner .Message (" trying to remove folder if it exists" )
79+ if ! noSpinner {
80+ spinner .Message (" trying to remove folder if it exists" )
81+ }
7682
7783 err := os .RemoveAll (localpath )
7884 if err != nil {
79- spinner .StopFailMessage (fmt .Sprintf ("error when trying to remove %s: %v" , localpath , err ))
85+ if ! noSpinner {
86+ spinner .StopFailMessage (fmt .Sprintf ("error when trying to remove %s: %v" , localpath , err ))
8087
81- err := spinner .StopFail ()
82- if err != nil {
83- log .Debug ().Err (err ).Msg ("cannot stop spinner" )
88+ err := spinner .StopFail ()
89+ if err != nil {
90+ log .Debug ().Err (err ).Msg ("cannot stop spinner" )
91+ }
8492 }
8593 return
8694 }
87- spinner .Message (" cloning" )
95+ if ! noSpinner {
96+ spinner .Message (" cloning" )
97+ }
8898 }
8999
90- _ , err = git .PlainClone (localpath , false , & git.CloneOptions {
100+ _ , err : = git .PlainClone (localpath , false , & git.CloneOptions {
91101 Auth : auth ,
92102 URL : cloneurl ,
93103 ReferenceName : plumbing .ReferenceName ("refs/heads/" + branch ),
94104 })
95105
96106 if err != nil {
97- spinner .StopFailMessage (fmt .Sprintf ("problem: %v" , err ))
107+ if ! noSpinner {
108+ spinner .StopFailMessage (fmt .Sprintf ("problem: %v" , err ))
98109
99- err := spinner .StopFail ()
100- if err != nil {
101- log .Debug ().Err (err ).Msg ("cannot stop spinner" )
110+ err := spinner .StopFail ()
111+ if err != nil {
112+ log .Debug ().Err (err ).Msg ("cannot stop spinner" )
113+ }
102114 }
103115 return
104116 }
105117
106- errs := spinner .Stop ()
107- if errs != nil {
108- log .Debug ().Err (err ).Msg ("cannot stop spinner" )
118+ fmt .Println (localpath )
119+
120+ if ! noSpinner {
121+ errs := spinner .Stop ()
122+ if errs != nil {
123+ log .Debug ().Err (err ).Msg ("cannot stop spinner" )
124+ }
109125 }
110126}
0 commit comments