Skip to content

Commit 3def6b7

Browse files
committed
Add to support the color print
1 parent 7a951f1 commit 3def6b7

File tree

6 files changed

+23
-29
lines changed

6 files changed

+23
-29
lines changed

README.md

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ git-diffs is the git subcommand that is diff files selector.
77
You can use the `git-diffs` as a git subcommand like `git diffs`.<br>
88
This shows diff file names and show diff when you select one.
99

10-
<img src="images/git-diffs-demo.gif" alt="git-diffs demo">
10+
<img src="images/git-diffs-schreenshot.png" alt="git-diffs schreenshot">
1111

1212
## Install
1313

@@ -19,25 +19,6 @@ go get -u github.com/yasukotelin/git-diffs
1919

2020
Or you can download the binary from [release](https://github.com/yasukotelin/git-diffs/releases) page. (only windows)
2121

22-
23-
## Usage
24-
25-
```
26-
$ git diffs
27-
=== Staged files ===
28-
29-
[1] D git.go
30-
[2] M main.go
31-
32-
=== Unstaged files ===
33-
34-
[3] M README.md
35-
[4] M git/diff.go
36-
[5] A images/git-diffs-demo.gif
37-
38-
Select number (empty is cancel) =>
39-
```
40-
4122
## Licence
4223

4324
MIT

go.mod

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@ module github.com/yasukotelin/git-diffs
22

33
go 1.13
44

5-
require github.com/urfave/cli v1.22.1
5+
require (
6+
github.com/gookit/color v1.2.0
7+
github.com/urfave/cli v1.22.1
8+
)

go.sum

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
22
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
33
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
4+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5+
github.com/gookit/color v1.2.0 h1:lHA77Kuyi5JpBnA9ESvwkY+nanLjRZ0mHbWQXRYk2Lk=
6+
github.com/gookit/color v1.2.0/go.mod h1:AhIE+pS6D4Ql0SQWbBeXPHw7gY0/sjHoA4s/n1KB7xg=
47
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
58
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
69
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
710
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
811
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
12+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
13+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
914
github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
1015
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
1116
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

images/git-diffs-demo.gif

-437 KB
Binary file not shown.

images/git-diffs-schreenshot.png

10.5 KB
Loading

main.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ import (
99

1010
"github.com/urfave/cli"
1111
"github.com/yasukotelin/git-diffs/git"
12+
"github.com/gookit/color"
1213
)
1314

1415
func main() {
1516
app := cli.NewApp()
1617
app.Name = "git-diffs"
17-
app.Version = "1.1.0"
18+
app.Version = "1.3.0"
1819
app.Description = "The git subcommand that is diff files selector."
1920
app.Action = mainAction
2021

@@ -36,28 +37,32 @@ func mainAction(c *cli.Context) error {
3637
return err
3738
}
3839

39-
fmt.Println("=== Staged files ===")
40+
fmt.Println("Staged files:")
4041
fmt.Println()
4142
stagedFilesLen := len(stagedFiles)
4243
if stagedFilesLen == 0 {
43-
fmt.Println(" No staged files.")
44+
fmt.Println("no staged files.")
4445
}
4546
for i, file := range stagedFiles {
46-
fmt.Printf(" [%d]\t%v\t%v\n", i+1, file.Status, file.Path)
47+
color.Green.Printf("\t[%d]\t%v\t%v\n", i+1, file.Status, file.Path)
4748
}
4849
fmt.Println()
4950

50-
fmt.Println("=== Unstaged files ===")
51+
fmt.Println("Unstaged files:")
5152
fmt.Println()
5253
unstagedFilesLen := len(unstagedFiles)
5354
if unstagedFilesLen == 0 {
54-
fmt.Println(" No unstaged files.")
55+
fmt.Println("no unstaged files.")
5556
}
5657
for i, file := range unstagedFiles {
57-
fmt.Printf(" [%d]\t%v\t%v\n", i+1+stagedFilesLen, file.Status, file.Path)
58+
color.Red.Printf("\t[%d]\t%v\t%v\n", i+1+stagedFilesLen, file.Status, file.Path)
5859
}
5960
fmt.Println()
6061

62+
if (stagedFilesLen + unstagedFilesLen == 0) {
63+
return nil
64+
}
65+
6166
fmt.Print("Select number (empty is cancel) => ")
6267

6368
var selNumStr string
@@ -70,7 +75,7 @@ func mainAction(c *cli.Context) error {
7075
if err != nil {
7176
return errors.New("your input is not number.")
7277
}
73-
if selNum > stagedFilesLen + unstagedFilesLen || selNum < 1 {
78+
if selNum > stagedFilesLen+unstagedFilesLen || selNum < 1 {
7479
return errors.New("your input is out of range numbers")
7580
}
7681

0 commit comments

Comments
 (0)