diff --git a/apply_theme.sh b/apply_theme.sh new file mode 100644 index 0000000..0ac7625 --- /dev/null +++ b/apply_theme.sh @@ -0,0 +1,169 @@ +#!/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.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 \ No newline at end of file