Skip to content
/ gst Public

πŸ‘» Supercharge your ghq workflow.

License

Notifications You must be signed in to change notification settings

uetchy/gst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b4af138 Β· Oct 27, 2021
Oct 27, 2021
Feb 24, 2019
Mar 10, 2020
Apr 15, 2018
Oct 16, 2019
Sep 17, 2020
Jun 22, 2021
Oct 27, 2021
Mar 10, 2020
Mar 26, 2021
Oct 27, 2021
Jun 22, 2021
Aug 6, 2019
Oct 27, 2021
Aug 6, 2019
Aug 6, 2019
Mar 26, 2021
Aug 6, 2019
Aug 6, 2019
Dec 25, 2015
Feb 19, 2019
Sep 2, 2020
Sep 2, 2020
Aug 6, 2019
Jun 1, 2018
Feb 19, 2019

Repository files navigation

gst πŸ‘»

Actions Status: release sake.sh badge

gst is a simple toolbox that offers additional commands (list, new, rm, doctor, update, fetch) for ghq.

See Quick Install for the installation guide.

Usage

gst list or gst

List uncommitted changes and unpushed commits within all repositories.

$ gst
/Users/uetchy/Repos/src/github.com/uetchy/gst (11 minutes ago)
uncommitted changes
 M .travis.yml
 M README.md

/Users/uetchy/Repos/src/github.com/uetchy/qiita-takeout (9 hours ago)
unpushed commits
409849d returns Promise.reject

with --short or -s option:

$ gst --short
/Users/uetchy/Repos/src/github.com/uetchy/ferret
/Users/uetchy/Repos/src/github.com/uetchy/gst

new

Create a new git repository.

Before start using new and rm command, You must set github.user in gitconfig to your GitHub username: git config --global github.user <user>.

$ gst new epic-project
/Users/uetchy/Repos/src/github.com/uetchy/epic-project
$ gst new epic-team/epic-project
/Users/uetchy/Repos/src/github.com/epic-team/epic-project

With cd, you can jump to the created project quickly:

cd $(gst new epic-project)

It's also good for having a handy alias for this workflow:

newrepo() {
  cd $(gst new ${1})
}

rm

Remove a git repository. It also removes the containing directory if the deleted repository was the sole repository the parent directory had.

$ gst rm retired-project
Remove? /Users/uetchy/Repos/src/github.com/uetchy/retired-project [Y/n]
Removed /Users/uetchy/Repos/src/github.com/uetchy/retired-project
Removed /Users/uetchy/Repos/src/github.com/uetchy

doctor

Health-check over all repositories.

$ gst doctor
[bitbucket.org/uetchy/scent] git remote origin has changed:
   Expected:   github.com/uetchy/google-cloud-vision-raspi-sample
   Actual:       bitbucket.org/uetchy/scent

update

git pull to all repositories.

$ gst update
/Users/uetchy/Repos/src/github.com/uetchy/gst
Already up-to-date.

fetch

git fetch --tags --prune to all repositories.

$ gst fetch
/Users/uetchy/Repos/src/github.com/uetchy/gst
 * [new branch]      dev        -> origin/dev
 - [deleted]         (none)     -> origin/test
 * [new tag]         v1.0.0     -> v1.0.0

Quick Install

See releases.

macOS:

brew tap sake.sh/uetchy https://sake.sh/uetchy
brew install gst

Linux:

curl -L https://github.com/uetchy/gst/releases/download/v5.0.5/gst_linux_amd64 > /usr/local/bin/gst
chmod +x /usr/local/bin/gst

Run as Docker container

You can take a glance at what gst do before installing the actual binary by running the containerized Docker image.

alias gst="docker run --rm -v \$(ghq root):/ghq -it uetchy/gst"
gst --help
gst list

Pre-release build

macOS:

curl -L https://github.com/uetchy/gst/releases/download/pre-release/gst_darwin_amd64 > /usr/local/bin/gst
chmod +x /usr/local/bin/gst

Linux:

curl -L https://github.com/uetchy/gst/releases/download/pre-release/gst_linux_amd64 > /usr/local/bin/gst
chmod +x /usr/local/bin/gst

Head build

go get github.com/uetchy/gst

Development

PRs are welcome.

go build
./gst

Test

Docker is required to run tests.

make test

Contributors

Yasuaki Uechi
Yasuaki Uechi

πŸ’» πŸ“–
NaotoSuzuki
NaotoSuzuki

πŸ’»