Skip to content

nikbrunner/repo-runner

Repository files navigation

repo-runner

repo-runner is a CLI tool for managing Git repositories in combination with TMUX.

Installation

To install the CLI application globally, run the following script:

Automatic installation

Note

The install script will install the CLI application to /usr/local/bin/rr. So make sure this is in your $PATH.

Important

Make sure you have go installed on your machine.

# Clone the repository (SSH)
git clone [email protected]:nikbrunner/repo-runner.git

# `cd` into that folder
cd repo-runner

# Give the install script execution permissions
chmod +x ./install.sh

# Run the install script
./install.sh

# Check if the app is in your PATH
which rr

Manual installation

Important

Make sure you have go installed on your machine.

# Clone the repository (SSH)
git clone [email protected]:nikbrunner/repo-runner.git

# `cd` into that folder
cd repo-runner

# Build the app
go build -o rr

# Move the app to your PATH
mv rr /usr/local/bin/rr

Usage

Adding a Repository

To add a new repository:

Add a repository to the list of repositories to be managed by repo-runner.

Example:

rr --add <git-repo-url>

rr --add [email protected]:nvim-telescope/telescope.nvim.git

# The repository will get cloned via the following schema: <config.RepoBasePath>/<GitHubUser>/<RepositoryName>
# Arbitrary example for the above command: ~/repos/nvim-telescope/telescope.nvim

Opening a Repository

Open the repository in a new TMUX session. This will let you pick a repository from the list of repositories to be managed by repo-runner to be opened in a new TMUX session.

rr run . --open

Removing a Repository

Remove a repository from the list of repositories to be managed by repo-runner. This will let you pick a repository from the list of repositories to be managed by repo-runner to be removed.

rr --remove

Status

Show the status of all repositories managed by repo-runner.

rr --status

Show Help

Lists all available commands and flags.

rr --help

Testing

go test ./...

Contributing

(Guidelines for contributing to the project.)

License

(Your chosen license or "Unlicensed" if not applicable.)

ROADMAP

Done

  • add
  • open
  • status
  • help
  • Default session layout should come from config
  • Improve fzf styling
  • Global install & build script
  • Fix Layout for run
  • Work with two folder level architecture (user/repo)
  • Incremental --status
  • Fix open repo with uncommited changes
  • General clean up & improve test coverage
  • Improve logging

Next

  • Replace predefined layouts with custom bash script which a user can define and run on a session
  • Flag Shorthands
  • config: User Config
  • config: config.Editor
  • config: config.ManagedRepos (Working Title)
  • Setup go install
  • Merge git() functions
  • Improve --status performance
  • Handle interrupt signal
  • Sketch for TUI
  • --reset - git fullreset for picked repository
  • --reset-all - git fullreset for all repositories
  • config: More options for config.Layouts

Future

  • AI (Diff & Summary)
  • Add TUI when running rr without flag

About

Local repository managment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published