kataras / iris-cli

[WIP] Iris Command Line Interface
https://iris-go.com
MIT License
124 stars 11 forks source link
iris iris-cli

Iris CLI (Work In Progress)

build status report card

Iris Command Line Interface is your buddy when it comes to get started with Iris and Go.

This project is not finished. It is under active development. TEST ONLY

Installation

The only requirement is the Go Programming Language.

$ go install github.com/kataras/iris-cli@main

Troubleshooting

If you get a network error during installation please make sure you set a valid GOPROXY environment variable.

$ go env -w GOPROXY=https://goproxy.cn,https://gocenter.io,https://goproxy.io,direct

If you get a network error during iris-cli execution, retry with the --proxy global flag.

$ iris-cli --proxy=env [COMMAND] [FLAGS]
#          --proxy=119.28.233.135:8080

List all Releases

Table of Contents

New Command

$ iris-cli new [--module=my_app] basic
#                                mvc
#                                svelte
#                                react-typescript
#                                go-admin

Run Command

$ iris-cli run
# optional argument, the project directory or
# a project template.

Download, install and run a project template at once.

$ iris-cli run react-typescript

Clean Command

$ iris-cli clean
# optional argument, the project directory,
# defaults to the current working directory.

Unistall Command

$ iris-cli unistall
# optional argument, the project directory,
# defaults to the current working directory.

Init Command

Create a new local iris project file through a local git repository.

$ iris-cli init

It creates the .iris.yml file for you. Note that, it adds a .gitignore entry of .iris.yml too. Therefore .iris.yml SHOULD be git-ignored as its settings depend on the current environment. Contributors of an iris-cli project should use their own versions of .iris.yml file.

Add Command

$ iris-cli add file.go
$ iris-cli add [--repo=iris-contrib/snippets] [--pkg=my_package] [--data=repo.json] [--replace=oldValue=newValue,oldValue2=newValue2] file.go[@version]

Check Command

$ iris-cli check [module]  
#              [iris]
#              [gopkg.in/yaml.v2]
#              [all]

Stats Command

Stats command shows stats for a collection of modules based on the major Go Proxies (goproxy.cn, gocenter.io, goproxy.io). Modules are separated by spaces.

Get Download Count

Download count per GOPROXY for a module and total for repository.

$ iris-cli stats --download-count [modules]
#  github.com/kataras/iris github.com/kataras/iris/v12 \
#  gopkg.in/yaml.v3 gopkg.in/yaml.v2

[github.com/kataras/iris]
• goproxy.cn: 27474
• gocenter.io: 5560
• total: 33034
[github.com/kataras/iris/v12]
• goproxy.cn: 33589
• gocenter.io: 3024
• total: 36613
[gopkg.in/yaml.v2]
• goproxy.cn: 2306257
• gocenter.io: 1686035
• total: 3992292
[gopkg.in/yaml.v3]
• goproxy.cn: 241121
• gocenter.io: 37909
• total: 279030

[repository total]
• github.com/kataras/iris: 69647
• gopkg.in/yaml: 4271322

Export & Compare Download Count Stats

To export the result of stats --download-count command you have to use the --out=downloads.yml flag.

$ iris-cli stats --download-count --out=downloads.yml \
  gopkg.in/yaml.v2 gopkg.in/yaml.v3 \
  github.com/kataras/iris github.com/kataras/irisv12

The above command will export the stats data to the downloads.yml file. When it contains data, the stats will be appended, so you have a history of stats. Run that command multiple times, e.g. wait 1minute, then wait 30 seconds and e.t.c. so we can have a sample data for the example.

Now, with that history, we can view the total downloads per repository with the stats compare --download-count command.

$ stats compare --download-count --since=24h --src=downloads.yml

[27 minutes ago]
  • github.com/kataras/iris: 70320
  • gopkg.in/yaml: 4295883
[22 minutes ago]
  • github.com/kataras/iris: 70327
  • gopkg.in/yaml: 4295886

[diff]
  • github.com/kataras/iris: +7
  • gopkg.in/yaml: +3

That will fetch the history and show the stats of the last 24 hours sorted by ascending timestamp of history entry. And shows how many new downloads each repository (base of one or more modules) has since the first entry(oldest) and the last one(newest).

The --src flag is required. You can disable the humanize time of the above by setting the --pretty=false flag. Customize its time format through the --time-format flag.

Note that the history file should be always generated through the iris-cli tool for consistent results.

List Versions

List all available releases Go Proxies have cached.

$ iris-cli stats --versions github.com/aws/copilot-cli gopkg.in/yaml.v2

[github.com/aws/copilot-cli]
• goproxy.io:
  • v0.0.4
  • v0.0.5
  • v0.0.6
  • v0.0.7
  • v0.0.8
  • v0.0.9
  • v0.1.0
  • v0.2.0
[gopkg.in/yaml.v2]
• goproxy.io:
  • v2.0.0
  • v2.1.0
  • v2.1.1
  • v2.2.0
  • v2.2.1
  • v2.2.2
  • v2.2.3
  • v2.2.4
  • v2.2.5
  • v2.2.6
  • v2.2.7
  • v2.2.8
  • v2.3.0

Contributing

We'd love to see your contribution to the Iris CLI! For more information about contributing to the Iris Command Line Interface please check the CONTRIBUTING.md file.

List of all Contributors

License

Iris CLI is free and open-source software licensed under the MIT License.