Skip to content

Commit 9574710

Browse files
committed
Update warg
1 parent 793cb4f commit 9574710

File tree

4 files changed

+42
-78
lines changed

4 files changed

+42
-78
lines changed

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ require (
66
github.com/karrick/godirwalk v1.17.0
77
github.com/stretchr/testify v1.10.0
88
go.bbkane.com/gocolor v0.0.5
9-
go.bbkane.com/warg v0.0.33
9+
go.bbkane.com/warg v0.0.36
1010
)
1111

1212
require (
1313
github.com/davecgh/go-spew v1.1.1 // indirect
1414
github.com/kr/text v0.2.0 // indirect
1515
github.com/mattn/go-isatty v0.0.20 // indirect
16-
github.com/mitchellh/go-homedir v1.1.0 // indirect
1716
github.com/pmezard/go-difflib v1.0.0 // indirect
17+
github.com/rogpeppe/go-internal v1.14.1 // indirect
1818
github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
19-
golang.org/x/sys v0.34.0 // indirect
19+
golang.org/x/sys v0.35.0 // indirect
2020
gopkg.in/yaml.v3 v3.0.1 // indirect
2121
)

go.sum

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,30 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
33
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
44
github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI=
55
github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
6-
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
7-
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
6+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
7+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
88
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
99
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
10-
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
11-
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
1210
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
1311
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
14-
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
15-
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
1612
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1713
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
18-
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
19-
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
14+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
15+
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
2016
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
2117
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
22-
github.com/xhit/go-str2duration/v2 v2.0.0 h1:uFtk6FWB375bP7ewQl+/1wBcn840GPhnySOdcz/okPE=
23-
github.com/xhit/go-str2duration/v2 v2.0.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
2418
github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc=
2519
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
2620
go.bbkane.com/gocolor v0.0.5 h1:WrdijR+XIH9QXXYUYTPH7m8QGIp7wLdMFWKL+8bK38Q=
2721
go.bbkane.com/gocolor v0.0.5/go.mod h1:7AEOm8kyPlpj9qr/SL9mEXSceh8xM2w+eBm4deMRNHk=
28-
go.bbkane.com/warg v0.0.21 h1:3BQxINoa8U7g2tlbSwopGUqqM7SC8aUAhpn5BzsTiLs=
29-
go.bbkane.com/warg v0.0.21/go.mod h1:LTSM3kaBWKU29DPYIjJkhIQ1oKQ1egdDgZ+Ae8uSB4A=
30-
go.bbkane.com/warg v0.0.26 h1:jaNPwisZLuD9Ga3yWKPLWFmsBt1lh9eLoSkJEXqgtHU=
31-
go.bbkane.com/warg v0.0.26/go.mod h1:xttS0YH1LCuFurEvk2mu2jn9DCKYS8T8sokxNg2JARo=
32-
go.bbkane.com/warg v0.0.31 h1:1t26ihP/2pMkHo0ACpqGbIhHQS4uK03wbbTWZCMULG0=
33-
go.bbkane.com/warg v0.0.31/go.mod h1:jiSKY0UtZndeK6D+RQSFN38xaHsg1j79alcIK65hxK0=
34-
go.bbkane.com/warg v0.0.33 h1:zM24N3Kkc9EbS4WgTpAXdZeh/8h1JI9Rn58NgOcB5/A=
35-
go.bbkane.com/warg v0.0.33/go.mod h1:jiSKY0UtZndeK6D+RQSFN38xaHsg1j79alcIK65hxK0=
36-
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
37-
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY=
38-
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
22+
go.bbkane.com/warg v0.0.36 h1:8C/arWh+xlQCwXGBEdZtb3ROAs1bqbk1GhCuNzhYGsk=
23+
go.bbkane.com/warg v0.0.36/go.mod h1:jiSKY0UtZndeK6D+RQSFN38xaHsg1j79alcIK65hxK0=
3924
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
40-
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
41-
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
42-
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
43-
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
44-
golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
45-
golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
25+
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
26+
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
4627
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
47-
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
48-
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
28+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
29+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
4930
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
5031
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
5132
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

link_unlink.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import (
1414

1515
"github.com/karrick/godirwalk"
1616
"go.bbkane.com/gocolor"
17-
"go.bbkane.com/warg/help/common"
17+
"go.bbkane.com/warg"
18+
1819
"go.bbkane.com/warg/path"
19-
"go.bbkane.com/warg/wargcore"
2020
)
2121

2222
// checkMode for types of files we're not prepared to deal with :)
@@ -439,7 +439,7 @@ func askPrompt(ask string) (bool, error) {
439439
}
440440
}
441441

442-
func unlink(ctx wargcore.Context) error {
442+
func unlink(ctx warg.CmdContext) error {
443443
ask := ctx.Flags["--ask"].(string)
444444
linkDir := ctx.Flags["--link-dir"].(path.Path).MustExpand()
445445
srcDir := ctx.Flags["--src-dir"].(path.Path).MustExpand()
@@ -449,7 +449,7 @@ func unlink(ctx wargcore.Context) error {
449449
ignorePatterns = ignoreF.([]string)
450450
}
451451

452-
color, err := common.ConditionallyEnableColor(ctx.Flags, os.Stdout)
452+
color, err := warg.ConditionallyEnableColor(ctx.Flags, os.Stdout)
453453
if err != nil {
454454
fmt.Fprintf(os.Stderr, "Error enabling color. Continuing without: %v\n", err)
455455
}
@@ -562,7 +562,7 @@ func unlink(ctx wargcore.Context) error {
562562
return nil
563563
}
564564

565-
func link(ctx wargcore.Context) error {
565+
func link(ctx warg.CmdContext) error {
566566
ask := ctx.Flags["--ask"].(string)
567567
linkDir := ctx.Flags["--link-dir"].(path.Path).MustExpand()
568568
srcDir := ctx.Flags["--src-dir"].(path.Path).MustExpand()
@@ -572,7 +572,7 @@ func link(ctx wargcore.Context) error {
572572
ignorePatterns = ignoreF.([]string)
573573
}
574574

575-
color, err := common.ConditionallyEnableColor(ctx.Flags, os.Stdout)
575+
color, err := warg.ConditionallyEnableColor(ctx.Flags, os.Stdout)
576576
if err != nil {
577577
fmt.Fprintf(os.Stderr, "Error enabling color. Continuing without: %v\n", err)
578578
}

main.go

Lines changed: 23 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,92 +2,75 @@ package main
22

33
import (
44
"go.bbkane.com/warg"
5-
"go.bbkane.com/warg/command"
6-
"go.bbkane.com/warg/completion"
7-
"go.bbkane.com/warg/flag"
85
"go.bbkane.com/warg/path"
9-
"go.bbkane.com/warg/section"
106
"go.bbkane.com/warg/value/scalar"
117
"go.bbkane.com/warg/value/slice"
12-
"go.bbkane.com/warg/wargcore"
138
)
149

1510
var version string
1611

17-
func app() *wargcore.App {
18-
linkUnlinkFlags := wargcore.FlagMap{
19-
"--ask": flag.New(
12+
func app() *warg.App {
13+
linkUnlinkFlags := warg.FlagMap{
14+
"--ask": warg.NewFlag(
2015
"Whether to ask before making changes",
2116
scalar.String(
2217
scalar.Choices("true", "false", "dry-run"),
2318
scalar.Default("true"),
2419
),
25-
flag.Required(),
20+
warg.Required(),
2621
),
27-
"--dotfiles": flag.New(
22+
"--dotfiles": warg.NewFlag(
2823
"Files/dirs starting with 'dot-' will have links starting with '.'",
2924
scalar.Bool(
3025
scalar.Default(true),
3126
),
32-
flag.Required(),
27+
warg.Required(),
3328
),
34-
"--ignore": flag.New(
29+
"--ignore": warg.NewFlag(
3530
"Ignore file/dir if the name (not the whole path) matches passed regex",
3631
slice.String(
3732
slice.Default([]string{"README.*"}),
3833
),
39-
flag.Alias("-i"),
40-
flag.UnsetSentinel("UNSET"),
34+
warg.Alias("-i"),
35+
warg.UnsetSentinel("UNSET"),
4136
),
42-
"--link-dir": flag.New(
37+
"--link-dir": warg.NewFlag(
4338
"Symlinks will be created in this directory pointing to files/directories in --src-dir",
4439
scalar.Path(
4540
scalar.Default(path.New("~")),
4641
),
47-
flag.Alias("-l"),
48-
flag.CompletionCandidates(func(ctx wargcore.Context) (*completion.Candidates, error) {
49-
return &completion.Candidates{
50-
Type: completion.Type_Directories,
51-
Values: nil,
52-
}, nil
53-
}),
54-
flag.Required(),
42+
warg.Alias("-l"),
43+
warg.FlagCompletions(warg.CompletionsDirectories()),
44+
warg.Required(),
5545
),
56-
"--src-dir": flag.New(
46+
"--src-dir": warg.NewFlag(
5747
"Directory containing files and directories to link to",
5848
scalar.Path(),
59-
flag.Alias("-s"),
60-
flag.CompletionCandidates(func(ctx wargcore.Context) (*completion.Candidates, error) {
61-
return &completion.Candidates{
62-
Type: completion.Type_Directories,
63-
Values: nil,
64-
}, nil
65-
}),
66-
flag.Required(),
49+
warg.Alias("-s"),
50+
warg.FlagCompletions(warg.CompletionsDirectories()),
51+
warg.Required(),
6752
),
6853
}
6954

7055
app := warg.New(
7156
"fling",
7257
version,
73-
section.New(
58+
warg.NewSection(
7459
"Link and unlink directory heirarchies ",
75-
section.NewCommand(
60+
warg.NewSubCmd(
7661
"link",
7762
"Create links",
7863
link,
79-
command.FlagMap(linkUnlinkFlags),
64+
warg.CmdFlagMap(linkUnlinkFlags),
8065
),
81-
section.NewCommand(
66+
warg.NewSubCmd(
8267
"unlink",
8368
"Unlink previously created links",
8469
unlink,
85-
command.FlagMap(linkUnlinkFlags),
70+
warg.CmdFlagMap(linkUnlinkFlags),
8671
),
87-
section.CommandMap(warg.VersionCommandMap()),
88-
section.Footer("Homepage: https://github.com/bbkane/fling"),
72+
warg.SectionFooter("Homepage: https://github.com/bbkane/fling"),
8973
),
90-
warg.GlobalFlagMap(warg.ColorFlagMap()),
9174
warg.SkipValidation(),
9275
)
9376
return &app

0 commit comments

Comments
 (0)