@@ -92,14 +92,15 @@ func main() {
9292 ShortName : "f" ,
9393 Usage : "Fetch assignments from exercism.io" ,
9494 Action : func (c * cli.Context ) {
95- if len (c .Args ()) != 0 && len (c .Args ()) != 2 {
96- fmt .Println ("Usage: exercism fetch\n or: exercism fetch LANGUAGE EXERCISE" )
95+ argCount := len (c .Args ())
96+ if argCount < 0 || argCount > 2 {
97+ fmt .Println ("Usage: exercism fetch\n or: exercism fetch LANGUAGE\n or: exercism fetch LANGUAGE EXERCISE" )
9798 return
9899 }
99100
100101 config , err := configuration .FromFile (c .GlobalString ("config" ))
101102 if err != nil {
102- if len ( c . Args ()) == 0 {
103+ if argCount == 0 || argCount == 1 {
103104 fmt .Println ("Are you sure you are logged in? Please login again." )
104105 return
105106 } else {
@@ -117,6 +118,18 @@ func main() {
117118 return
118119 }
119120
121+ if len (assignments ) == 0 {
122+ noAssignmentMessage := "No assignments found"
123+ if argCount == 2 {
124+ fmt .Printf ("%s for %s - %s\n " , noAssignmentMessage , c .Args ()[0 ], c .Args ()[1 ])
125+ } else if argCount == 1 {
126+ fmt .Printf ("%s for %s\n " , noAssignmentMessage , c .Args ()[0 ])
127+ } else {
128+ fmt .Printf ("%s\n " , noAssignmentMessage )
129+ }
130+ return
131+ }
132+
120133 for _ , a := range assignments {
121134 err := SaveAssignment (config .ExercismDirectory , a )
122135 if err != nil {
0 commit comments