Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nirokay/gitman
A cross-platform git repository manager. Easily keep track of your cloned repositories.
https://github.com/nirokay/gitman
git manager nim nim-lang repository-management repository-manager
Last synced: about 1 month ago
JSON representation
A cross-platform git repository manager. Easily keep track of your cloned repositories.
- Host: GitHub
- URL: https://github.com/nirokay/gitman
- Owner: nirokay
- License: gpl-3.0
- Created: 2022-12-11T07:05:00.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-11-03T17:05:57.000Z (about 1 year ago)
- Last Synced: 2023-11-03T18:26:10.556Z (about 1 year ago)
- Topics: git, manager, nim, nim-lang, repository-management, repository-manager
- Language: Nim
- Homepage:
- Size: 229 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
# gitman - Git Repository Manager
Have you been cloning git repositories left and right? Do you wish to keep them automatically up-to date?
gitman is a cross-platform manager for git repositories, that are located inside a single directory.
## Usage
Arguments:
* `clone [url: string]`: Clones one or more git repositories to the git repository directory. (urls seperated by spaces)
**Example:** `gitman clone https://github.com/nirokay/gitman https://github.com/nirokay/nirokay`
* `pull`: Pulls every repository's changes, or only the ones which names are provided.
**Examples:** `gitman pull` (pulls all repos), `gitman pull gitman nirokay` (only pulls gitman and nirokay repo)
* `help`: Displays a help message.
* `remove [dir: string]`: Removes the specified directory inside the git-repo directory. Can accept mutliple directories to remove.
**Example:** `gitman remove nirokay gitman`
* `list`: Lists all git repositories.
* `install`: Executes installation commands specified in the installation json file (defualt: `$GITMAN_REPOS_LOCATION/.gitman-install.json`).
**Example:** `gitman install` (executes install instructions on every repository)
* `edit-install`: Edits the installation json-file. Uses the `EDITOR` environment variable for the editor.
**Example:** `gitman edit-install` (opens the file in your editor)
Some commands may also have aliases, see `help` for more information.
## Installation
You will need to have [Nim](https://nim-lang.org) installed, as well as its package-manager nimble.
**Note:**
If you are using `nimble install`, make sure the nimble/bin directory is in your path (default: `~/.nimble/bin/`)!
### nimble
`nimble install gitman`
### Compiling manually from source
Clone the repository and run `nimble build -d:release` to compile or `nimble install` to compile and install it to the nimble/bin directory.
You can also set some compile-time flags to customise your the program to your liking.
**List of compile-time flags:**
* `environment_variable` (default: `GITMAN_REPOS_LOCATION`)
This sets the environment variable the program uses.
* `gitman_install_file` (default: `.gitman-install.json`)
Changes the installation json-file name.
**Usage:**
When compiling add the `-d:` flag. For example:
* `nimble build -d:environment_variable:NEW_ENV_VARIABLE`
* `nimble build -d:gitman_install_file:new_file_name.json`
* `nimble build -d:environment_variable:NEW_ENV_VARIABLE -d:gitman_install_file:new_file_name.json`## Configuration
There are no configuration files for this program (anymore). You can set a custom git directory by changing the `GITMAN_REPOS_LOCATION` environment variable.
**Example (Linux):**
```bash
export GITMAN_REPOS_LOCATION="$HOME/Git"
```**Note:**
This will only be available for the current session. Consider putting the string above into your profile/shell rc file.
## Changes
See [Changes](CHANGES.md) document.
## Supported Operating Systems
Any operating system that is supported by the [nim programming language](https://nim-lang.org) should be supported.
This program was tested on GNU/Linux (Manjaro) and Windows 10 (64 bit).
## Dependancies
* [git](https://git-scm.com/)
* [Nim](https://nim-lang.org) (not required to run the binary, only for compiling and installing through nimble)