dotfiles/config.sh

87 lines
1.8 KiB
Bash
Raw Permalink Normal View History

2019-07-18 16:45:46 +00:00
#!/usr/bin/env bash
set -e
copy_dotfiles()
{
echo "[INFO] Installing dot files..."
rsync --exclude "dconf/" \
--exclude ".vscode/" \
2019-07-19 15:54:08 +00:00
--exclude ".git*" \
2020-03-14 15:06:47 +00:00
--exclude "$(basename "$0")" \
--exclude "LICENSE" \
--exclude "README.md" "$@" \
2019-10-04 17:17:27 +00:00
-hlav --no-perms . ~
echo ""
}
dconf_loader()
{
if ! command -v dconf > /dev/null 2>&1; then
echo "[WARNING] dconf command not found"
echo ""
return 1
else
for file in dconf/*; do
echo "[INFO] Loading $(basename "$file") config..."
dconf_path=$(grep -E -m1 '^#.+dconf-path=.+$' "$file" | cut -f2 -d "=")
dconf load "$dconf_path" < "$file"
done
fi
echo ""
}
dconf_dumper()
{
if ! command -v dconf > /dev/null 2>&1; then
echo "[WARNING] dconf command not found"
echo ""
return 1
else
for file in dconf/*; do
dconf_conf=$(grep -E -m1 '^#.+dconf-path=.+$' "$file")
dconf_path=$(echo "$dconf_conf" | cut -f2 -d "=")
echo "[INFO] Dumping $dconf_path to $(basename "$file")..."
printf "%s\n\n" "$dconf_conf" > "$file"
dconf dump "$dconf_path" >> "$file"
done
fi
echo ""
}
main()
{
cd "$(dirname "$0")"
2020-05-01 14:11:54 +00:00
case "$1" in
--dump-dconf)
dconf_dumper
;;
--install)
shift
copy_dotfiles "$@"
2020-05-01 14:11:54 +00:00
dconf_loader
;;
--install-dotfiles)
shift
copy_dotfiles "$@"
;;
--install-dconf)
2020-07-03 18:17:49 +00:00
dconf_loader
;;
2020-05-01 14:11:54 +00:00
**)
2020-06-12 15:05:30 +00:00
echo "Usage: $0 <--dump-dconf|--install|--install-dotfiles|--install-dconf>"
2020-05-01 14:11:54 +00:00
;;
esac
cd - > /dev/null
}
main "$@"
2019-07-18 16:45:46 +00:00