@@ -65,10 +65,17 @@ func Execute(version string) {
65
65
},
66
66
{
67
67
Name : "current" ,
68
+ Flags : []cli.Flag {
69
+ & cli.BoolFlag {
70
+ Name : "no-header" ,
71
+ Usage : "Whether or not to print a header line" ,
72
+ },
73
+ },
68
74
Action : func (cCtx * cli.Context ) error {
69
75
tool := cCtx .Args ().Get (0 )
70
76
71
- return currentCommand (logger , tool )
77
+ noHeader := cCtx .Bool ("no-header" )
78
+ return currentCommand (logger , tool , noHeader )
72
79
},
73
80
},
74
81
{
@@ -286,7 +293,7 @@ func Execute(version string) {
286
293
}
287
294
288
295
// This function is a whole mess and needs to be refactored
289
- func currentCommand (logger * log.Logger , tool string ) error {
296
+ func currentCommand (logger * log.Logger , tool string , noHeader bool ) error {
290
297
conf , err := config .LoadConfig ()
291
298
if err != nil {
292
299
logger .Printf ("error loading config: %s" , err )
@@ -301,6 +308,9 @@ func currentCommand(logger *log.Logger, tool string) error {
301
308
302
309
// settings here to match legacy implementation
303
310
w := tabwriter .NewWriter (os .Stdout , 16 , 0 , 1 , ' ' , 0 )
311
+ if ! noHeader {
312
+ writeHeader (w )
313
+ }
304
314
305
315
if tool == "" {
306
316
// show all
@@ -358,23 +368,38 @@ func getVersionInfo(conf config.Config, plugin plugins.Plugin, currentDir string
358
368
return toolversion , found , installed
359
369
}
360
370
371
+ func writeHeader (w * tabwriter.Writer ) {
372
+ fmt .Fprintf (w , "%s\t %s\t %s\t %s\n " , "Name" , "Version" , "Source" , "Installed" )
373
+ }
374
+
361
375
func formatCurrentVersionLine (w * tabwriter.Writer , plugin plugins.Plugin , toolversion resolve.ToolVersions , found bool , installed bool , err error ) error {
362
376
if err != nil {
363
377
return err
364
378
}
365
379
366
- fmt .Fprintf (w , "%s\t %s\t %s\n " , plugin .Name , formatVersions (toolversion .Versions ), formatSource (toolversion , plugin , found , installed ))
380
+ // columns are: name, version, source, installed
381
+ version := formatVersions (toolversion .Versions )
382
+ source := formatSource (toolversion , found )
383
+ installedStatus := formatInstalled (toolversion , plugin .Name , found , installed )
384
+ fmt .Fprintf (w , "%s\t %s\t %s\t %s\n " , plugin .Name , version , source , installedStatus )
367
385
return nil
368
386
}
369
387
370
- func formatSource (toolversion resolve.ToolVersions , plugin plugins.Plugin , found bool , installed bool ) string {
388
+ func formatInstalled (toolversion resolve.ToolVersions , name string , found , installed bool ) string {
389
+ if ! found {
390
+ return ""
391
+ }
392
+ if ! installed {
393
+ return fmt .Sprintf ("false - Run `asdf install %s %s`" , name , toolversion .Versions [0 ])
394
+ }
395
+ return "true"
396
+ }
397
+
398
+ func formatSource (toolversion resolve.ToolVersions , found bool ) string {
371
399
if found {
372
- if ! installed {
373
- return fmt .Sprintf ("Not installed. Run \" asdf install %s %s\" " , plugin .Name , toolversion .Versions [0 ])
374
- }
375
400
return filepath .Join (toolversion .Directory , toolversion .Source )
376
401
}
377
- return fmt . Sprintf ( "No version is set. Run \" asdf <global|shell|local> %s <version> \" " , plugin . Name )
402
+ return "______"
378
403
}
379
404
380
405
func formatVersions (versions []string ) string {
@@ -693,13 +718,13 @@ func pluginListCommand(cCtx *cli.Context, logger *log.Logger) error {
693
718
// logic
694
719
for _ , plugin := range plugins {
695
720
if urls && refs {
696
- logger .Printf ("%s\t \t %s\t %s\n " , plugin .Name , plugin .URL , plugin .Ref )
721
+ fmt .Printf ("%s\t \t %s\t %s\n " , plugin .Name , plugin .URL , plugin .Ref )
697
722
} else if refs {
698
- logger .Printf ("%s\t \t %s\n " , plugin .Name , plugin .Ref )
723
+ fmt .Printf ("%s\t \t %s\n " , plugin .Name , plugin .Ref )
699
724
} else if urls {
700
- logger .Printf ("%s\t \t %s\n " , plugin .Name , plugin .URL )
725
+ fmt .Printf ("%s\t \t %s\n " , plugin .Name , plugin .URL )
701
726
} else {
702
- logger .Printf ("%s\n " , plugin .Name )
727
+ fmt .Printf ("%s\n " , plugin .Name )
703
728
}
704
729
}
705
730
@@ -1370,7 +1395,7 @@ func whereCommand(logger *log.Logger, tool, versionStr string) error {
1370
1395
versionStruct := toolversions.Version {Type : "version" , Value : versions .Versions [0 ]}
1371
1396
if installs .IsInstalled (conf , plugin , versionStruct ) {
1372
1397
installPath := installs .InstallPath (conf , plugin , versionStruct )
1373
- logger .Printf ("%s" , installPath )
1398
+ fmt .Printf ("%s" , installPath )
1374
1399
return nil
1375
1400
}
1376
1401
}
@@ -1387,7 +1412,7 @@ func whereCommand(logger *log.Logger, tool, versionStr string) error {
1387
1412
}
1388
1413
1389
1414
installPath := installs .InstallPath (conf , plugin , version )
1390
- logger .Printf ("%s" , installPath )
1415
+ fmt .Printf ("%s" , installPath )
1391
1416
1392
1417
return nil
1393
1418
}
0 commit comments