https://github.com/shkm/dobbin
🐴 A script managing workhorse.
https://github.com/shkm/dobbin
bash package-manager shell
Last synced: about 2 months ago
JSON representation
🐴 A script managing workhorse.
- Host: GitHub
- URL: https://github.com/shkm/dobbin
- Owner: shkm
- License: mit
- Created: 2017-09-22T16:45:19.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-23T12:28:09.000Z (over 8 years ago)
- Last Synced: 2026-02-07T21:40:50.923Z (5 months ago)
- Topics: bash, package-manager, shell
- Language: Shell
- Homepage:
- Size: 5.86 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# :horse: dobbin
A script managing workhorse.
## Description
Dobbin is a simple package manager for miscellaneous binaries and scripts. Given a git repository and a list of files, the repository will be cloned and the files symlinked to a central bin directory.
One benefit of this approach is that there's no need for projects to explicitly support Dobbin, e.g. with a `package.json` or something, because you define what you want to symlink yourself.
I wrote this primarily so I don't have to manually pull down various scripts into my dotfiles, and can instead store a simple list of those packages.
## Installation
Since Dobbin is just a script, you can bootstrap it!
```bash
\curl -sS https://raw.githubusercontent.com/shkm/dobbin/master/dobbin | \
bash -s add https://github.com/shkm/dobbin dobbin
```
Now just add `$HOME/.dobbin/bin` to your `$PATH`.
## Usage
### `dobbin install`
Installs packages listed in your `$HOME/.dobbin/package_list`.
### `dobbin add repo_url path [path...]`
Adds the package to your package list and installs it.
Each path passed is relative to the repository and will be symlinked into `$HOME/.dobbin/bin`.
#### Example
This will clone the Dobbin repo to `$HOME/.dobbin/packages` and symlink the `dobbin` file to `$HOME/.dobbin/bin`.
`dobbin add https://github.com/shkm/dobbin dobbin`
### `dobbin remove repo_url`
__not implemented yet__
Removes the entire package from your package list.
This will remove the git repository and all symlinked files.
### `dobbin update`
__not implemented yet__
Updates all packages in your package list, adding any symlinks where necessary.
### `dobbin clean`
__not implemented yet__
Removes any packages that aren't in your package list.
- When a package is no longer listed at all, the symlinks and repo will be deleted.
- When a package is in the list, but extraneous symlinks are detected, just those symlinks will be deleted.
### `dobbin edit`
__not implemented yet__
Opens the package list in your editor.
## TODO
- Implement a `help` command
- Implement `remove` command
- Implement `update` command
- Implement `clean` command
- Implement `edit` command