https://github.com/kimxogus/icbm
Interactive Configuration Backup Manager
https://github.com/kimxogus/icbm
backup cli configuration configuration-management gist nodejs
Last synced: 3 months ago
JSON representation
Interactive Configuration Backup Manager
- Host: GitHub
- URL: https://github.com/kimxogus/icbm
- Owner: kimxogus
- License: mit
- Created: 2017-06-02T13:37:34.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T01:48:29.000Z (over 2 years ago)
- Last Synced: 2024-04-13T23:54:32.066Z (over 1 year ago)
- Topics: backup, cli, configuration, configuration-management, gist, nodejs
- Language: TypeScript
- Homepage:
- Size: 1.11 MB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# icbm
> CLI tool to manage and backup your configuration files
[](https://npmjs.org/package/icbm)
[](https://npmjs.org/package/icbm)[](https://travis-ci.org/kimxogus/icbm)
[](https://ci.appveyor.com/project/kimxogus/icbm/branch/master)[](https://david-dm.org/kimxogus/icbm)
[](https://david-dm.org/kimxogus/icbm?type=dev)
[](https://snyk.io/test/github/kimxogus/icbm)## Prerequisites
- node.js `>= 10`
## Installation
- npm `npm install -g icbm`
- yarn `yarn global add icbm`## Usage
### Add Configurations
- For supported configuration files
```bash
icbm add file_name
```- For not supported configuration files
```bash
icbm add your_conf_name /path/to/your_conf
```- Configurations currently supported
- bash_profile (`$HOME/.bash_profile`)
- bashrc (`$HOME/.bashrc`)
- gitconfig (`$HOME/.gitconfig`)
- vimrc (`$HOME/.vimrc`)
- zshrc (`$HOME/.zshrc`)### Remove Configurations
- This action will remove configuration from _icbm_ and return it to original path.
(e.g. remove the symbolic link and return the managed `bash_profile` to `$HOME/.bash_profile`)```bash
icbm remove file_name
```### Upload Configurations
```bash
icbm upload
```### Download Configurations
```bash
icbm download
```### Managing config
- Set config
```bash
icbm config set config_name config_value
```- Get config
```bash
icbm config get config_name
```- Get all configs
```bash
icbm config get
```- Configurations
- Repository Type `repository.type` (Only gist is available now)
- Gist id `repository.gist` (You can set using prompt in uploading and downloading)
- Github Token `repository.githubToken` (You can set using prompt in uploading. https://github.com/settings/tokens)
- Create backup on add `file.createBackup` (.bak file will be created on add. `true` by default.)## TODO
- resolve paths in different os and env(like \$HOME)
- multiple repositories to backup configurations
- node api
- rewrite in golang(for standalone app)
- support for other apps (list of formulas like `brew list` and `brew cask list`)