#!/bin/sh

configs='cmus
ckb-next
compton
mpv
openbox
nnn
liferea
lutris
ranger
tmux
xkb
.bashrc
.profile
xfiles'

paths="$HOME/Documents $HOME/Notes $HOME/Pictures $HOME/Projects $HOME/Source"

BU="$HOME/Backups"

conf() {
	configs=$(echo $configs | tr '\n' ' ')
	for dir in $configs
	do
		rsync -av --progress --exclude '*.git/' $HOME/.config/$dir $BU/config/
	done
}

mac() {
	macros="$HOME/Macros/*"
	rsync -av --progress --exclude '*.git/ *.swp$ *.swo$' $macros $BU/macros
}

global_vim() {
	rcs=/etc/vim/*
	packs=/usr/share/vim??/*
	macros=$HOME/Macros/*
	for dir in $macros
	do
		echo $dir
		rsync -av --progress --exclude '*.git/' $HOME/.config/$dir $BU/config/global_vim/
	done
}

notes() {
	rcs=/etc/vim/*
	packs=/usr/share/vim??/*
	macros=$HOME/Macros/*
	for dir in $macros
	do
		echo $dir
		rsync -av --progress --exclude '*.git/' $HOME/.config/$dir $BU/config/global_vim/
	done
}

archive() {
	destination=$BU/archives/$(date +%F)-$(openssl rand -base64 6)
	tar -g $BU/archives/tar.info -cvf $destination $paths
}

case "$1" in
	configs) conf;;
	macros) mac;;
	globalvim) global_vim;;
	notes) notes;;
	archive) archive;;
esac