A command line tool to backup and share personal configuration of any other program

Lertsenem 86fad9b83f Adding diff functionnality 2 years ago
commands 86fad9b83f Adding diff functionnality 2 years ago
.gitignore 834e523ae1 Initial commit 3 years ago
README.adoc 20566a3c89 Never gonna tell a lie 3 years ago
main.py 755b079ab6 Aesthetics 2 years ago
metafile.py b402cba1d9 Moving one dir up 3 years ago
persoconf.py b402cba1d9 Moving one dir up 3 years ago
utils.py b402cba1d9 Moving one dir up 3 years ago

README.adoc

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 :