mirror of
https://github.com/celogeek/imgcat.git
synced 2025-05-24 15:52:38 +02:00
use go-flags
This commit is contained in:
parent
5b74921ced
commit
650b8737b1
2
Makefile
2
Makefile
@ -11,4 +11,4 @@ $(BINARY): $(SOURCES)
|
||||
all: $(BINARY) test
|
||||
|
||||
test:
|
||||
./$(BINARY) -url "https://images.pexels.com/photos/2558605/pexels-photo-2558605.jpeg?cs=srgb&dl=pexels-anel-rossouw-2558605.jpg&fm=jpg" -height 25
|
||||
./$(BINARY) -u "https://images.pexels.com/photos/2558605/pexels-photo-2558605.jpeg?cs=srgb&dl=pexels-anel-rossouw-2558605.jpg&fm=jpg" -r 25
|
||||
|
17
README.md
17
README.md
@ -21,7 +21,7 @@ go build ./cmd/imgcat
|
||||
## Usage
|
||||
|
||||
```
|
||||
./imgcat -url "https://images.pexels.com/photos/2558605/pexels-photo-2558605.jpeg?cs=srgb&dl=pexels-anel-rossouw-2558605.jpg&fm=jpg" -height 25
|
||||
./imgcat -u "https://images.pexels.com/photos/2558605/pexels-photo-2558605.jpeg?cs=srgb&dl=pexels-anel-rossouw-2558605.jpg&fm=jpg" -r 25
|
||||
```
|
||||
|
||||
<img width="1069" alt="Capture d’écran 2021-12-11 à 17 40 55" src="https://user-images.githubusercontent.com/65178/145684510-39617c22-5818-4573-896c-7e0e6915db91.png">
|
||||
@ -29,10 +29,13 @@ go build ./cmd/imgcat
|
||||
## Help
|
||||
|
||||
```
|
||||
# imgcat -h
|
||||
Usage of imgcat:
|
||||
-height int
|
||||
maximum height in lines
|
||||
-url string
|
||||
url of the jpg
|
||||
Usage:
|
||||
imgcat [OPTIONS]
|
||||
|
||||
Application Options:
|
||||
-u, --url= url of the jpg
|
||||
-r, --rows= maximum number of rows
|
||||
|
||||
Help Options:
|
||||
-h, --help Show this help message
|
||||
```
|
||||
|
@ -2,18 +2,19 @@ package main
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/jessevdk/go-flags"
|
||||
)
|
||||
|
||||
type Options struct {
|
||||
url string
|
||||
height int
|
||||
Url string `short:"u" long:"url" description:"url of the jpg"`
|
||||
Rows int `short:"r" long:"rows" description:"maximum number of rows"`
|
||||
}
|
||||
|
||||
func PrintHeader(size int64, height int) {
|
||||
@ -46,16 +47,16 @@ func PrintImg(img io.ReadCloser) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
var opts = &Options{}
|
||||
flag.StringVar(&opts.url, "url", "", "url of the jpg")
|
||||
flag.IntVar(&opts.height, "height", 0, "maximum height in lines")
|
||||
flag.Parse()
|
||||
var options Options
|
||||
if _, err := flags.Parse(&options); err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if !(strings.HasPrefix(opts.url, "http://") || strings.HasPrefix(opts.url, "https://")) {
|
||||
if !(strings.HasPrefix(options.Url, "http://") || strings.HasPrefix(options.Url, "https://")) {
|
||||
log.Fatalln("url doesn't start with http")
|
||||
}
|
||||
|
||||
resp, err := http.Get(opts.url)
|
||||
resp, err := http.Get(options.Url)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
@ -64,7 +65,7 @@ func main() {
|
||||
log.Fatalln(fmt.Sprintf("Issue to get img, status = %d", resp.StatusCode))
|
||||
}
|
||||
|
||||
PrintHeader(resp.ContentLength, opts.height)
|
||||
PrintHeader(resp.ContentLength, options.Rows)
|
||||
PrintImg(resp.Body)
|
||||
|
||||
PrintFooter()
|
||||
|
5
go.mod
5
go.mod
@ -1,3 +1,8 @@
|
||||
module github.com/celogeek/imgcat
|
||||
|
||||
go 1.17
|
||||
|
||||
require (
|
||||
github.com/jessevdk/go-flags v1.5.0 // indirect
|
||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4 // indirect
|
||||
)
|
||||
|
4
go.sum
Normal file
4
go.sum
Normal file
@ -0,0 +1,4 @@
|
||||
github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
|
||||
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
|
||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4 h1:EZ2mChiOa8udjfp6rRmswTbtZN/QzUQp4ptM4rnjHvc=
|
||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
Loading…
x
Reference in New Issue
Block a user