persoconf
=========

*persoconf* is a python script intended to keep track of all your personal
configuration files (also known as dotfiles).

Usage
-----

If you want to skip this and get to the point: there's a 'help' command
available, and +--help/-h+ options for every other command.


Add an app to your persoconf repo:

----
$> persoconf add myapp
----


Add dotfiles and config directories to this app:

----
$> persoconf add myapp ~/.myapp.config
$> persoconf add myapp ~/.config/myapp/
----


List the files and dirs saved in persoconf for an app:

----
$> persoconf list -f
tmux
        tmux.conf
awesome
        rc.lua
vim
        vimrc
myapp
        myapp.config
        myapp/
----


Check if modifications occured on your config files:

----
$> echo "some change in my conf" >> ~/.myapp.config
$> persoconf check
persoconf:WARNING: File ~/.myapp.config was modified
----


Update persoconf saved files with the latest configuration available:

----
$> persoconf update
----


Package your dotfiles to move them on another machine:

----
$> persoconf package --pkgtype tgz
$> ls
persoconf.20160602.tgz
$> tar tzf persoconf.20160602.tgz
.config/awesome/rc.lua
.config/myapp/somefile
.config/myapp/someotherfile
.myapp.config
.tmux.conf
.vimrc
----


Internals
---------

All persoconf data is by default saved in a '.config/persoconf' directory. You
can override this location with the global +--rootdir+ option. If the rootdir
location does not exist when you first try to use persoconf, persoconf will ask
if you want to create it.

Basically, data is saved as is (which means textfiles and dirs, mostly), and
metadata is saved as json files.



// vim: set ft=asciidoc :
