This commit is contained in:
Penelope Gwen 2024-05-30 23:17:14 -06:00
parent 52230660d6
commit e067a9c717
4 changed files with 27 additions and 27 deletions

View file

@ -77,7 +77,7 @@ sapphrc_filelists(){
done done
validate_backupdir validate_backupdir
validate_profile "${PROFILE}" validate_profile "${PROFILE_NAME}"
case "${OPERATION}" in case "${OPERATION}" in
add) add)

View file

@ -35,27 +35,27 @@ check_name(){
} }
validate_profile(){ validate_profile(){
profile_name="${1}" PROFILE_NAME="${1}"
first_check=true first_check=true
while check_name "${profile_name}" "$first_check";do while check_name "${PROFILE_NAME}" "$first_check";do
first_check=false first_check=false
if [ "$COMMAND" == "create" ];then if [ "$COMMAND" == "create" ];then
read -p "Profile Name: " profile_name read -p "Profile Name: " PROFILE_NAME
else else
backups=( "${sapphrc_config}/backups/"* ) backups=( "${sapphrc_config}/backups/"* )
echo "$backups" echo "$backups"
if [ -d "${backups[0]}" ];then if [ -d "${backups[0]}" ];then
select d in $(ls "${sapphrc_config}/backups/");do test -n "$d" && break; echo ">>> Invalid Selection"; done select d in $(ls "${sapphrc_config}/backups/");do test -n "$d" && break; echo ">>> Invalid Selection"; done
profile_name="$d" PROFILE_NAME="$d"
else else
echo "No backups exist!" echo "No backups exist!"
exit 1 exit 1
fi fi
fi fi
done done
sapphrc_profile="${sapphrc_config}/backups/${profile_name}" sapphrc_profile="${sapphrc_config}/backups/${PROFILE_NAME}"
sapphrc_profile_rcdir="${sapphrc_profile}/home/.sapphrc" sapphrc_profile_rcdir="${sapphrc_profile}/home/.sapphrc"
sapphrc_profile_rc="${sapphrc_profile_rcdir}/${profile_name}" sapphrc_profile_rc="${sapphrc_profile_rcdir}/${PROFILE_NAME}"
} }
validate_backupdir(){ validate_backupdir(){

View file

@ -4,40 +4,40 @@ sapphrc_pcreate(){
mkdir -p "${sapphrc_profile_rcdir}" mkdir -p "${sapphrc_profile_rcdir}"
touch "${sapphrc_profile}/"{include,exclude} touch "${sapphrc_profile}/"{include,exclude}
echo '#!/bin/bash'|tee "${sapphrc_profile_rc}" > /dev/null echo '#!/bin/bash'|tee "${sapphrc_profile_rc}" > /dev/null
echo ".sapphrc/${profile_name}"|tee "${sapphrc_profile}/include" > /dev/null echo ".sapphrc/${PROFILE_NAME}"|tee "${sapphrc_profile}/include" > /dev/null
chmod +x "${sapphrc_profile_rc}" chmod +x "${sapphrc_profile_rc}"
echo "Successfully created '${profile_name}'" echo "Successfully created '${PROFILE_NAME}'"
join "${profile_name}" sapphrc_join "${PROFILE_NAME}"
} }
sapphrc_premove(){ sapphrc_premove(){
echo "WARNING: really remove profile '${profile_name}'?" echo "WARNING: really remove profile '${PROFILE_NAME}'?"
echo "~${sapphrc_profile#$HOME} and all its contents will be deleted!" echo "~${sapphrc_profile#$HOME} and all its contents will be deleted!"
read -p "Confirm removal (y/N): " confirm_remove read -p "Confirm removal (y/N): " confirm_remove
if [[ "${confirm_remove}" =~ ^([yY][eE][sS]|[yY])$ ]];then if [[ "${confirm_remove}" =~ ^([yY][eE][sS]|[yY])$ ]];then
leave sapphrc_pleave
echo "removing '${profile_name}'" echo "removing '${PROFILE_NAME}'"
rm -r "${sapphrc_profile}" rm -r "${sapphrc_profile}"
echo "Profile '${profile_name}' has been removed. Be sure to leave the profile on other machines/accounts to avoid synchronization issues." echo "Profile '${PROFILE_NAME}' has been removed. Be sure to leave the profile on other machines/accounts to avoid synchronization issues."
fi fi
} }
sapphrc_pjoin(){ sapphrc_pjoin(){
if grep -q ^"${profile_name}"$ "${sapphrc_config}/active_profiles";then if grep -q ^"${PROFILE_NAME}"$ "${sapphrc_config}/active_profiles";then
echo "Already joined ${profile_name}, nothing to do." echo "Already joined ${PROFILE_NAME}, nothing to do."
else else
echo "${profile_name}"|tee -a "${sapphrc_config}/active_profiles" > /dev/null echo "${PROFILE_NAME}"|tee -a "${sapphrc_config}/active_profiles" > /dev/null
echo "Successfully joined '${profile_name}'!" echo "Successfully joined '${PROFILE_NAME}'!"
fi fi
} }
sapphrc_pleave(){ sapphrc_pleave(){
if grep -q ^"${profile_name}"$ "${sapphrc_config}/active_profiles";then if grep -q ^"${PROFILE_NAME}"$ "${sapphrc_config}/active_profiles";then
sed -i '/^'"${profile_name}"'$/d' "${sapphrc_config}/active_profiles" sed -i '/^'"${PROFILE_NAME}"'$/d' "${sapphrc_config}/active_profiles"
[ -e "${HOME}/.sapphrc/${profile_name}" ] && rm "${HOME}/.sapphrc/${profile_name}" [ -e "${HOME}/.sapphrc/${PROFILE_NAME}" ] && rm "${HOME}/.sapphrc/${PROFILE_NAME}"
echo "Successfully left '${profile_name}'!" echo "Successfully left '${PROFILE_NAME}'!"
else else
echo "You have not joined '${profile_name}', nothing to do." echo "You have not joined '${PROFILE_NAME}', nothing to do."
fi fi
} }

View file

@ -4,11 +4,11 @@ sapphrc_rsync(){
echo "" echo ""
# validate_backupdir # validate_backupdir
sync_direction="$1" sync_direction="$1"
cat "${sapphrc_config}/active_profiles" | while read profile_name cat "${sapphrc_config}/active_profiles" | while read PROFILE_NAME
do do
backup_homedir="$sapphrc_config/backups/${profile_name}/home" backup_homedir="$sapphrc_config/backups/${PROFILE_NAME}/home"
include_list="$sapphrc_config/backups/${profile_name}/include" include_list="$sapphrc_config/backups/${PROFILE_NAME}/include"
exclude_list="$sapphrc_config/backups/${profile_name}/exclude" exclude_list="$sapphrc_config/backups/${PROFILE_NAME}/exclude"
case ${sync_direction} in case ${sync_direction} in
backup) backup)
echo "backup" echo "backup"