very simple config manager
Go
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore
LICENSE
README
cfg.go
cm.go
commands.go

README

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 <file> 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