@@ -14,6 +14,7 @@ import (
14
14
"runtime"
15
15
"strconv"
16
16
"strings"
17
+ "text/tabwriter"
17
18
"time"
18
19
19
20
"github.com/pkg/browser"
@@ -25,6 +26,36 @@ func init() {
25
26
rand .Seed (time .Now ().Unix ())
26
27
}
27
28
29
+ const helpTabWidth = 5
30
+
31
+ var helpTab = strings .Repeat (" " , helpTabWidth )
32
+
33
+ // flagHelp generates a friendly help string for all globally registered command
34
+ // line flags.
35
+ func flagHelp () string {
36
+ var bd strings.Builder
37
+
38
+ w := tabwriter .NewWriter (& bd , 3 , 10 , helpTabWidth , ' ' , 0 )
39
+
40
+ fmt .Fprintf (w , "Flags:\n " )
41
+ var count int
42
+ flag .VisitAll (func (f * flag.Flag ) {
43
+ count ++
44
+ if f .DefValue == "" {
45
+ fmt .Fprintf (w , "\t -%v\t %v\n " , f .Name , f .Usage )
46
+ } else {
47
+ fmt .Fprintf (w , "\t -%v\t %v\t (%v)\n " , f .Name , f .Usage , f .DefValue )
48
+ }
49
+ })
50
+ if count == 0 {
51
+ return "\n "
52
+ }
53
+
54
+ w .Flush ()
55
+
56
+ return bd .String ()
57
+ }
58
+
28
59
func main () {
29
60
var (
30
61
skipSyncFlag = flag .Bool ("skipsync" , false , "skip syncing local settings and extensions to remote host" )
@@ -33,11 +64,15 @@ func main() {
33
64
)
34
65
35
66
flag .Usage = func () {
36
- fmt .Printf (`Usage: [-skipsync] %v HOST [DIR] [SSH ARGS...]
37
-
38
- Start code-server over SSH.
67
+ fmt .Printf (`Usage: %v [FLAGS] HOST [DIR]
68
+ Start VS Code via code-server over SSH.
39
69
More info: https://github.com/codercom/sshcode
40
- ` , os .Args [0 ],
70
+
71
+ Arguments:
72
+ ` + helpTab + `HOST is passed into the ssh command.
73
+ ` + helpTab + `DIR is optional.
74
+
75
+ %v` , os .Args [0 ], flagHelp (),
41
76
)
42
77
}
43
78
0 commit comments