Compare commits

...

3 commits
1.3.1 ... main

Author SHA1 Message Date
Penelope Gwen
3dbe3a68d0 1.3.3 2024-12-10 15:10:14 -08:00
0de14df9d9 bug fix 2024-05-30 23:19:08 -06:00
e067a9c717 bug fix 2024-05-30 23:17:14 -06:00
5 changed files with 41 additions and 29 deletions

12
debian/changelog vendored
View file

@ -1,3 +1,15 @@
sapphrc (1.3.3) unstable; urgency=medium
* synchronization now deletes files. be careful!
-- Penelope Gwen <support@pogmom.me> Tue, 10 Dec 2024 15:09:01 -0800
sapphrc (1.3.2) unstable; urgency=medium
* bug fixes
-- Penelope Gwen <support@pogmom.me> Thu, 30 May 2024 23:18:54 -0600
sapphrc (1.3.1) unstable; urgency=medium
* Fixed filelist logic

View file

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

View file

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

View file

@ -4,40 +4,40 @@ sapphrc_pcreate(){
mkdir -p "${sapphrc_profile_rcdir}"
touch "${sapphrc_profile}/"{include,exclude}
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}"
echo "Successfully created '${profile_name}'"
join "${profile_name}"
echo "Successfully created '${PROFILE_NAME}'"
sapphrc_join "${PROFILE_NAME}"
}
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!"
read -p "Confirm removal (y/N): " confirm_remove
if [[ "${confirm_remove}" =~ ^([yY][eE][sS]|[yY])$ ]];then
leave
echo "removing '${profile_name}'"
sapphrc_pleave
echo "removing '${PROFILE_NAME}'"
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
}
sapphrc_pjoin(){
if grep -q ^"${profile_name}"$ "${sapphrc_config}/active_profiles";then
echo "Already joined ${profile_name}, nothing to do."
if grep -q ^"${PROFILE_NAME}"$ "${sapphrc_config}/active_profiles";then
echo "Already joined ${PROFILE_NAME}, nothing to do."
else
echo "${profile_name}"|tee -a "${sapphrc_config}/active_profiles" > /dev/null
echo "Successfully joined '${profile_name}'!"
echo "${PROFILE_NAME}"|tee -a "${sapphrc_config}/active_profiles" > /dev/null
echo "Successfully joined '${PROFILE_NAME}'!"
fi
}
sapphrc_pleave(){
if grep -q ^"${profile_name}"$ "${sapphrc_config}/active_profiles";then
sed -i '/^'"${profile_name}"'$/d' "${sapphrc_config}/active_profiles"
[ -e "${HOME}/.sapphrc/${profile_name}" ] && rm "${HOME}/.sapphrc/${profile_name}"
echo "Successfully left '${profile_name}'!"
if grep -q ^"${PROFILE_NAME}"$ "${sapphrc_config}/active_profiles";then
sed -i '/^'"${PROFILE_NAME}"'$/d' "${sapphrc_config}/active_profiles"
[ -e "${HOME}/.sapphrc/${PROFILE_NAME}" ] && rm "${HOME}/.sapphrc/${PROFILE_NAME}"
echo "Successfully left '${PROFILE_NAME}'!"
else
echo "You have not joined '${profile_name}', nothing to do."
echo "You have not joined '${PROFILE_NAME}', nothing to do."
fi
}

View file

@ -4,19 +4,19 @@ sapphrc_rsync(){
echo ""
# validate_backupdir
sync_direction="$1"
cat "${sapphrc_config}/active_profiles" | while read profile_name
cat "${sapphrc_config}/active_profiles" | while read PROFILE_NAME
do
backup_homedir="$sapphrc_config/backups/${profile_name}/home"
include_list="$sapphrc_config/backups/${profile_name}/include"
exclude_list="$sapphrc_config/backups/${profile_name}/exclude"
backup_homedir="$sapphrc_config/backups/${PROFILE_NAME}/home"
include_list="$sapphrc_config/backups/${PROFILE_NAME}/include"
exclude_list="$sapphrc_config/backups/${PROFILE_NAME}/exclude"
case ${sync_direction} in
backup)
echo "backup"
rsync -arvSH --files-from="${include_list}" --exclude-from="${exclude_list}" --exclude '.config/sapphrc/' "${HOME}" "${backup_homedir}"
rsync -arvSH --files-from="${include_list}" --exclude-from="${exclude_list}" --exclude '.config/sapphrc/' "${HOME}" "${backup_homedir}" --delete
;;
restore)
echo "restore"
rsync -arvSH --files-from="${include_list}" --exclude-from="${exclude_list}" --exclude '.config/sapphrc/' "${backup_homedir}" "${HOME}"
rsync -arvSH --files-from="${include_list}" --exclude-from="${exclude_list}" --exclude '.config/sapphrc/' "${backup_homedir}" "${HOME}" --delete
;;
*)
echo "unknown sync direction"