alacritty_colors/apply_theme.sh
2020-09-05 20:16:05 +03:00

169 lines
No EOL
3.3 KiB
Bash

#!/usr/bin/env bash
# #<---------------------------->
# # You must include this section when:
# # Distributing, Using and/or Modifying this code.
# # Please read and abide by the terms of the included LICENSE.
# # Copyright 2020, Deepankar Chakroborty, All rights reserved.
# #
# # Version : 0.1
# # Author : Deepankar Chakroborty (https://github.com/dchakro)
# # Report issues: https://github.com/dchakro/alacritty_colors/issues
# # License: https://github.com/dchakro/alacritty_colors/blob/master/LICENSE
# #<---------------------------->
# Make a theme list
declare -a arrFiles
cd themes
for file in *.yml
do
arrFiles=("${arrFiles[@]}" "$file")
done
cd ..
RESET()
{
# Copies ./base.yml -> ~/.alacritty.yml
echo ""
echo 'This will overwrite your ~/.alacritty.yml with ./base.yml'
while true; do
read -p "Restore base config (y/N): " backup_choice1
case $backup_choice1 in
[Yy]* )
cp ./base.yml ~/.alacritty.yml && echo "Config reset to base!"
break
;;
[Nn]* )
echo "Reset aborted."
break
;;
* )
echo "Please answer with either Y/y or N/n."
esac
done
}
BACKUP()
{
# Backs up ~/.alacritty.yml as ~/.alacritty.bak.yml
if [ ! -f ~/.alacritty.yml ] ; then
echo '~/.alacritty.yml does not exist!'
RESET
fi
if [ ! -f ~/.alacritty.bak.yml ] ; then
cp ~/.alacritty.yml ~/.alacritty.bak.yml && echo "Config backup successful!"
else
while true; do
read -p "Backup exists. Overwrite? (y/N): " backup_choice2
case $backup_choice2 in
[Yy]* )
cp ~/.alacritty.yml ~/.alacritty.bak.yml && echo "Backup overwrite successful!"
break
;;
[Nn]* )
echo "Backup aborted."
break
;;
* )
echo "Please answer with either Y/y or N/n."
esac
done
fi
}
RESTORE()
{
if [ -f ~/.alacritty.bak.yml ] ; then
cp -f ~/.alacritty.bak.yml ~/.alacritty.yml && echo "Config restored!"
else
echo "Backup config for alacritty does not exist!!"
exit 1
fi
}
LIST_THEMES()
{
echo 'Availabe themes:'
declare -i counter
counter=1
for item in "${arrFiles[@]}"
do
echo "# ${counter} :${item}"
counter=($counter+1)
done
}
APPLY_THEMES()
{
LIST_THEMES
read -p "Choose (default=1): " inp
if [ -z "${inp}" ]; then
inp=1
fi
inp=$((inp-1)) # as array indices start from 0
echo ""
echo "Applying the theme: ${arrFiles[inp]}"
cat ./base.yml ./themes/${arrFiles[inp]} >| ~/.alacritty.yml
bash ./show_colors.sh
while true; do
read -p "Keep changes (Y/n): " choice
case $choice in
[Yy]* )
echo "Theme set to: ${arrFiles[inp]}"
exit 0
;;
[Nn]* )
RESTORE
break
;;
* )
echo "Please answer with either Y/y or N/n."
esac
done
}
while true
do
reset_choice=""
choice=""
backup_choice1=""
backup_choice2=""
inp=""
printf ' -- Apply alacritty themes --
1) Apply Themes
2) Backup .alacritty.yml
3) Restore the backup
4) Reset config (no defined color scheme)
5) Exit
Enter: ';
read var;
if [ "$var" -eq "1" ]; then
APPLY_THEMES
fi
if [ "$var" -eq "2" ]; then
BACKUP
exit 0
fi
if [ "$var" -eq "3" ]; then
RESTORE
exit 0
fi
if [ "$var" -eq "4" ]; then
RESET
exit 0
fi
if [ "$var" -eq "5" ]; then
exit 0
fi
done