48 lines
979 B
Bash
Executable File
48 lines
979 B
Bash
Executable File
parameter=$1
|
|
keep_backup=1
|
|
|
|
install() {
|
|
if [[ $parameter == "all" ]] || [[ $parameter == $1 ]]; then
|
|
echo "Installing $1 config in $2"
|
|
if [[ $keep_backup -eq 1 ]]; then
|
|
rm -rf $2_backup
|
|
mv $2 $2_backup
|
|
else
|
|
rm -rf $2
|
|
fi
|
|
cp -rf $1 $2
|
|
fi
|
|
}
|
|
|
|
if [[ $parameter == '' ]]; then
|
|
echo "No config specified, the following configs are available:"
|
|
echo " all - all of the config files"
|
|
while read name path; do
|
|
echo " $name"
|
|
done <configs
|
|
exit
|
|
fi
|
|
|
|
read -p "Do you want to back up your old config files? (y/n) " yn
|
|
case $yn in
|
|
[Nn]*)
|
|
keep_backup=0
|
|
break
|
|
;;
|
|
[Yy]*)
|
|
keep_backup=1
|
|
break
|
|
;;
|
|
*)
|
|
echo "Unknown answer, treating it as yes"
|
|
keep_backup=1
|
|
break
|
|
;;
|
|
esac
|
|
|
|
while read name path; do
|
|
eval "name=$name" # re-evaluate the string as a path
|
|
eval "path=$path" # re-evaluate the string as a path
|
|
install $name $path
|
|
done <configs
|