Skip to content

fioncat/roxide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

roxide

roxide is a git repositories manager CLI, it is easy to use, and very fast!

roxide has good support for terminal use, including autocompletion and fuzzy search based on fzf.

Now roxide does not support Windows system

Install

Download from release.

Config

Add a basic config in ~/.config/roxide/config.toml:

# ~/.config/roxide/config.toml

workspace = "~/dev"
data_dir = "~/.local/share/roxide"
default_branch = "main"
stats_ignore = []

[fzf]
name = "fzf"
args = []

[git]
name = "git"
args = []

[bash]
name = "bash"
args = []

[edit]
name = "vim"
args = []

Add a github remote config in ~/.config/roxide/remotes/github.toml:

# ~/.config/roxide/remotes/github.toml

clone = "github.com"
icon = ""

[api]
provider = "github"
token = "${GITHUB_TOKEN}"
cache_hours = 24

[default]
sync = false
pin = false
ssh = false
user = "<your-user>"
email = "<your-email>"
on_create = []

[owners."<your-user>"]
sync = true
pin = true
ssh = true
on_create = []

[owners."<your-organization>"]
sync = true
pin = true
ssh = true
on_create = []

Add a test remote config in ~/.config/roxide/remotes/test.toml

# ~/.config/roxide/remotes/test.toml

icon = ""

[owners.rust]
sync = false
pin = false
ssh = false
on_create = ["cargo-init"]

[owners.golang]
sync = false
pin = false
ssh = false
on_create = ["go-init"]

Add a hook cargo-init in ~/.config/roxide/hooks/cargo-init.sh to init cargo when creating test rust repository:

# ~/.config/roxide/hooks/cargo-init.sh

cargo init

Add a hook go-init in ~/.config/roxide/hooks/go-init.sh to init golang when creating test golang repository:

# ~/.config/roxide/hooks/go-init.sh

go mod init ${REPO_NAME}

touch main.go
cat << EOF > main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello world!")
}
EOF

You can add more scaffolding as needed.

Shell Support

Now we support zsh and bash, it is recommended to use zsh for a better experience.

To enable completion and autojump, you need to add roxide init script to your shell profile:

source <(ROXIDE_INIT="$(basename $SHELL)" roxide)

# Optional, use `zz` to implement quick jump.
alias zz="rox home"

Then you can use rox command to implement autojump.

For example, use the following command to jump to roxide project:

rox home github fioncat roxide

Usage

You can use <Tab> to complete command at any time!

Search repos and jump:

rox home

Search repos under a remote and jump:

rox home github

Search repos under a owner and jump:

rox home github fioncat

Global fuzzy matching and jump:

rox home rox # Will jump to repo whose name contains 'rox'

Jump to the last accessed repo:

rox home -

Jump to the last accessed repo under a owner:

rox home github fioncat -

Jump to the repo by url/ssh:

rox home https://github.com/fioncat/roxide.git
rox home git@github.com/fioncat/roxide.git

Search and remove a repo from disk:

rox rm repo github fioncat
rox rm repo github fioncat roxide
rox rm repo rox

Remove all repos under an owner:

rox rm repo -r github fioncat

For more commands and usages, please see: rox -h.

About

Manage your git repositories

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages