Files
colorshell/update-repo.sh
T

123 lines
3.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/bash
source ./utils.sh
Check_current_dir() {
if ! [[ -f ./utils.sh ]]; then
Send_log warn "Looks like you're not in the repository directory!\nPlease run this script from the repo to avoid problems."
Send_log "Exiting"
sleep .5
exit 1
fi
}
Clean_local() {
Send_log "info" "Cleaning current repo dotfiles..."
for dir in ${config_dirs[@]}; do
if [[ -d "./$dir" ]]; then
rm -rf ./$dir
fi
done
Send_log "info" "Cleaning wallpapers..."
rm -rf ./wallpapers
echo "Done cleaning."
}
Update_local() {
for dir in ${config_dirs[@]}; do
if [[ -d "$XDG_CONFIG_HOME/$dir" ]]; then
Send_log "Copying ${dir^}"
cp -r $XDG_CONFIG_HOME/$dir ./$dir
else
Send_log "warn" "Looks like the ~/.config/$dir dir is in fault! Skipping it..."
fi
done
if [[ -d "$HOME/wallpapers" ]]; then
Send_log "Copying wallpapers"
mkdir -p ./wallpapers
cp -rf $HOME/wallpapers/* ./wallpapers
else
Send_log warn "Wallpapers dir could not be found in $HOME, skipping..."
fi
printf "\nDone updating local repo!\n"
}
Update_remote() {
echo "Git status:"
git status
echo "Please type one of the dotfiles you want to push now(only one dir):"
ls --color=auto -d -- */
printf "Directory: "
read chosen_dir
if [[ -d $chosen_dir ]]; then
git add $chosen_dir
echo -n "Would you like to add more dirs to queue? [y/n] "
read add_more_dirs
if [[ $add_more_dirs =~ y ]]; then
Update_remote
else
echo "Fine then! What will be the commit message? (You can use emojis by typing its name between colons, e.g.: ´:tada:´)"
read commit_message
echo "Committing your changes..."
git commit -m "$commit_message"
echo -n "Done! Do you want to push changes now? If not, you'll be redirected to pre-commit process. [y/n] "
read push_changes
if [[ $push_changes =~ y ]]; then
git push
echo "Done pushing!!"
else
Update_remote
fi
fi
else
echo "Looks like this directory does not exist! Try taking a look at the dir list."
Update_remote
fi
}
Check_current_dir
Print_header
printf "\n"
echo "!!WARNING!! Running this script may override all data in current repo with host configurations."
echo "This script is intended to be used only by retrozinndev/Hyprland-Dots repo owner"
printf "\n"
echo "Please run this script in it's current directory to avoid problems."
echo "Tip: Press Ctrl + C to stop script at any time"
printf "\n"
echo -n "Do you want to update local repository with host configurations? [y/n] "
read answer
if ! [[ $answer =~ y ]]; then
Send_log "Exiting"
exit 1
fi
printf "\n"
Clean_local
Update_local
echo -n "Would you like to commit to remote? (You will be prompted for each directory and commit messages) [y/n] "
read answer
if [[ $answer =~ y ]]; then
Update_remote
echo "Looks like it's done! Have a great day!"
else
echo "Ok, work's finished here! Have a great day!"
fi
env git status
exit 0