@@ -15,13 +15,16 @@ func main() {
1515 app .Name = "exercism"
1616 app .Usage = "A command line tool to interact with http://exercism.io"
1717 app .Version = VERSION
18+ app .Flags = []cli.Flag {
19+ cli.StringFlag {"config, c" , configuration .Filename (configuration .HomeDir ()), "path to config file" },
20+ }
1821 app .Commands = []cli.Command {
1922 {
2023 Name : "current" ,
2124 ShortName : "c" ,
2225 Usage : "Show the current assignments" ,
2326 Action : func (c * cli.Context ) {
24- config , err := configuration .FromFile (configuration . HomeDir ( ))
27+ config , err := configuration .FromFile (c . GlobalString ( "config" ))
2528 if err != nil {
2629 fmt .Println ("Are you sure you are logged in? Please login again." )
2730 return
@@ -44,7 +47,7 @@ func main() {
4447 ShortName : "d" ,
4548 Usage : "Fetch first assignment for each language from exercism.io" ,
4649 Action : func (c * cli.Context ) {
47- config , err := configuration .FromFile (configuration . HomeDir ( ))
50+ config , err := configuration .FromFile (c . GlobalString ( "config" ))
4851 if err != nil {
4952 config , err = configuration .Demo ()
5053 if err != nil {
@@ -76,8 +79,7 @@ func main() {
7679 return
7780 }
7881
79- config , err := configuration .FromFile (configuration .HomeDir ())
80-
82+ config , err := configuration .FromFile (c .GlobalString ("config" ))
8183 if err != nil {
8284 if len (c .Args ()) == 0 {
8385 fmt .Println ("Are you sure you are logged in? Please login again." )
@@ -112,23 +114,23 @@ func main() {
112114 ShortName : "l" ,
113115 Usage : "Save exercism.io api credentials" ,
114116 Action : func (c * cli.Context ) {
115- configuration .ToFile (configuration . HomeDir ( ), askForConfigInfo ())
117+ configuration .ToFile (c . GlobalString ( "config" ), askForConfigInfo ());
116118 },
117119 },
118120 {
119121 Name : "logout" ,
120122 ShortName : "o" ,
121123 Usage : "Clear exercism.io api credentials" ,
122124 Action : func (c * cli.Context ) {
123- logout (configuration . HomeDir ( ))
125+ logout (c . GlobalString ( "config" ))
124126 },
125127 },
126128 {
127129 Name : "peek" ,
128130 ShortName : "p" ,
129131 Usage : "Fetch upcoming assignment from exercism.io" ,
130132 Action : func (c * cli.Context ) {
131- config , err := configuration .FromFile (configuration . HomeDir ( ))
133+ config , err := configuration .FromFile (c . GlobalString ( "config" ))
132134 if err != nil {
133135 fmt .Println ("Are you sure you are logged in? Please login again." )
134136 return
@@ -157,7 +159,7 @@ func main() {
157159 "to a file and have not submitted it, and you're trying to restore the last " +
158160 "submitted version, first move that file out of the way, then call restore." ,
159161 Action : func (c * cli.Context ) {
160- config , err := configuration .FromFile (configuration . HomeDir ( ))
162+ config , err := configuration .FromFile (c . GlobalString ( "config" ))
161163 if err != nil {
162164 fmt .Println ("Are you sure you are logged in? Please login again." )
163165 return
@@ -184,7 +186,7 @@ func main() {
184186 ShortName : "s" ,
185187 Usage : "Submit code to exercism.io on your current assignment" ,
186188 Action : func (c * cli.Context ) {
187- config , err := configuration .FromFile (configuration . HomeDir ( ))
189+ config , err := configuration .FromFile (c . GlobalString ( "config" ))
188190 if err != nil {
189191 fmt .Println ("Are you sure you are logged in? Please login again." )
190192 return
@@ -237,7 +239,7 @@ func main() {
237239 ShortName : "u" ,
238240 Usage : "Delete the last submission" ,
239241 Action : func (c * cli.Context ) {
240- config , err := configuration .FromFile (configuration . HomeDir ( ))
242+ config , err := configuration .FromFile (c . GlobalString ( "config" ))
241243 if err != nil {
242244 fmt .Println ("Are you sure you are logged in? Please login again." )
243245 return
@@ -261,7 +263,7 @@ func main() {
261263 ShortName : "w" ,
262264 Usage : "Get the github username that you are logged in as" ,
263265 Action : func (c * cli.Context ) {
264- config , err := configuration .FromFile (configuration . HomeDir ( ))
266+ config , err := configuration .FromFile (c . GlobalString ( "config" ))
265267 if err != nil {
266268 fmt .Println ("Are you sure you are logged in? Please login again." )
267269 return
0 commit comments