Skip to content
/ icbm Public

Interactive Configuration Backup Manager

License

Notifications You must be signed in to change notification settings

kimxogus/icbm

Repository files navigation

icbm

CLI tool to manage and backup your configuration files

npm version npm downloads

Build Status Build status

Dependencies Status DevDependencies Status Known Vulnerabilities

Prerequisites

  • node.js >= 10

Installation

  • npm npm install -g icbm
  • yarn yarn global add icbm

Usage

Add Configurations

  • For supported configuration files
icbm add file_name
  • For not supported configuration files
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)
icbm remove file_name

Upload Configurations

icbm upload

Download Configurations

icbm download

Managing config

  • Set config
icbm config set config_name config_value
  • Get config
icbm config get config_name
  • Get all configs
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)