/icbm

Interactive Configuration Backup Manager

Primary LanguageTypeScriptMIT LicenseMIT

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)