cm icon indicating copy to clipboard operation
cm copied to clipboard

very simple config manager

Usage: ./cm [options]:

--help, -h: show help
 --version: show version

--verbose, -v: show more output --pull, -r: show diff/status output as if a pull were being done

cm is a (very) simple configuration manager designed to help keep and maintain system configs in an alternate overlay directory, which could then be separately backed up, distributed, or under version control. The optional file arguments given to cm can generally also be directories, in which case cm always behaves recursively. If no arguments are provided, the current working directory is used. Usage follows typical version control interface, with 'cm' followed by a command and then arguments related to that command:

add <file>      - copy file to management directory
rm <file>       - remove file from management directory
status [path]   - show status of files in path are under cm
ls [path]       - list all files in path that are under cm
diff [file]     - show diff between files and management directory
pull [all]      - pull cm overlay files to cwd, or / if "all"
push [all]      - push new copies of files in cwd to cm overlay

ENVIRONMENT VARIABLES:

CM_CONFIG_PATH  - root config path (default: /opt/cm)
CM_UNSAFE_SYNC  - if set, do not create .cmbak~ files on pull
CM_SYNC_SYMLINK - if set, create symlinks to cm overlay on pull 
CM_DIFF         - diff path, default tries 'colordiff', then 'diff' on PATH