diff options
| author | Jacob McDonnell <jacob@simplelittledream.com> | 2022-07-14 19:09:06 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@simplelittledream.com> | 2022-07-14 19:09:06 -0400 |
| commit | ed4daf7429bf2580118aad87b8f3e2011efed7ec (patch) | |
| tree | 82f9d8ed68de119e5777f5ecfae9df4a92fe92b3 /.local/bin/dotfiles-config | |
Initial commit
Diffstat (limited to '.local/bin/dotfiles-config')
| -rwxr-xr-x | .local/bin/dotfiles-config | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/.local/bin/dotfiles-config b/.local/bin/dotfiles-config new file mode 100755 index 0000000..e2a4296 --- /dev/null +++ b/.local/bin/dotfiles-config @@ -0,0 +1,97 @@ +#!/bin/sh +DOTFILESDIR=$HOME/Documents/projects/gitlab/dotfiles +add(){ + cd $HOME + declare -i count=1 + declare -i countForDia=1 + while [ "$count" -le "$(ls -A $HOME | wc -w)" ] + do + name[$countForDia]="$(ls -A $HOME | sed "${count}q;d")" + forDialog[$countForDia]="${countForDia} $(ls -A $HOME | sed "${count}q;d") off " + count=$((count+1)) + countForDia=$((countForDia+1)) + done + count=1 + while [ "$count" -le "$(ls -A $HOME/.config/ | wc -w)" ] + do + name[$countForDia]=".config/$(ls -A $HOME/.config/ | sed "${count}q;d")" + forDialog[$countForDia]="${countForDia} .config/$(ls -A $HOME/.config/ | sed "${count}q;d") off " + countForDia=$((countForDia+1)) + count=$((count+1)) + done + count=1 + while [ "$count" -le "$(ls -A $HOME/.local/share/ | wc -w)" ] + do + name[$countForDia]=".local/share/$(ls -A $HOME/.local/share/ | sed "${count}q;d")" + forDialog[$countForDia]="${countForDia} .local/share/$(ls -A $HOME/.local/share/ | sed "s/Paradox Interactive/ParadoxInteractive/g" | sed "${count}q;d") off " + countForDia=$((countForDia+1)) + count=$((count+1)) + done + name[$countForDia]=".local/bin/" + forDialog[$countForDia]="${countForDia} .local/bin/ off" + set -A files $(dialog --title "Dotfiles in the Home directory" --checklist "Select dotfiles:" 0 0 0 ${forDialog[*]} 3>&1 1>&2 2>&3 3>&-) + cd $DOTFILESDIR + count=0 + while [ "$count" -le "${#files[@]}" ] + do + [ -f ${name[${files[$count]}]} ] && cp $HOME/${name[${files[$count]}]} ${name[${files[$count]}]} + [ -d ${name[${files[$count]}]} ] && cp -TR $HOME/${name[${files[$count]}]} ${name[${files[$count]}]} + git add ${name[${files[$count]}]} + count=$((count+1)) + done + COMMITMSG=$(dialog --title "Commit Message" --inputbox "Message" 0 0 3>&1 1>&2 2>&3 3>&-) + git commit -m "$COMMITMSG" + git push +} +del(){ + cd $DOTFILESDIR + declare -i count=1 + declare -i countForDia=1 + while [ "$count" -le "$(ls -A $DOTFILESDIR | wc -w)" ] + do + name[$countForDia]="$(ls -A $DOTFILESDIR | sed "${count}q;d")" + forDialog[$countForDia]="${countForDia} $(ls -A $DOTFILESDIR | sed "${count}q;d") off " + count=$((count+1)) + countForDia=$((countForDia+1)) + done + count=1 + while [ "$count" -le "$(ls -A $DOTFILESDIR/.config/ | wc -w)" ] + do + name[$countForDia]=".config/$(ls -A $DOTFILESDIR/.config/ | sed "${count}q;d")" + forDialog[$countForDia]="${countForDia} .config/$(ls -A $DOTFILESDIR/.config/ | sed "${count}q;d") off " + countForDia=$((countForDia+1)) + count=$((count+1)) + done + count=1 + while [ "$count" -le "$(ls -A $DOTFILESDIR/.local/share/ | wc -w)" ] + do + name[$countForDia]=".local/share/$(ls -A $DOTFILESDIR/.local/share/ | sed "${count}q;d")" + forDialog[$countForDia]="${countForDia} .local/share/$(ls -A $DOTFILESDIR/.local/share/ | sed "${count}q;d") off " + countForDia=$((countForDia+1)) + count=$((count+1)) + done + count=1 + while [ "$count" -le "$(ls -A $DOTFILESDIR/.local/bin/ | wc -w)" ] + do + name[$countForDia]=".local/bin/$(ls -A $DOTFILESDIR/.local/bin/ | sed "${count}q;d")" + forDialog[$countForDia]="${countForDia} .local/bin/$(ls -A $DOTFILESDIR/.local/bin/ | sed "${count}q;d") off " + countForDia=$((countForDia+1)) + count=$((count+1)) + done + set -A files $(dialog --title "Dotfiles in the Dotfiles directory" --checklist "Select dotfiles:" 0 0 0 ${forDialog[*]} 3>&1 1>&2 2>&3 3>&-) + count=0 + while [ "$count" -le "${#files[@]}" ] + do + git rm -r ${name[${files[$count]}]} + echo ${name[${files[$count]}]} + count=$((count+1)) + done + COMMITMSG=$(dialog --title "Commit Message" --inputbox "Message" 0 0 3>&1 1>&2 2>&3 3>&-) + git commit -m "$COMMITMSG" + git push +} +mainMenu(){ + select=$(dialog --title "Dotfiles Script" --menu "Select an option:" 0 0 0 1 Add 2 Delete 3>&1 1>&2 2>&3 3>&-) + ( [ $select = 1 ] && add ) || ( [ $select = 2 ] && del ) +} +mainMenu |
