@@ -170,7 +170,7 @@ get_latest_release() {
170170 echo " $tag_name |$download_url "
171171}
172172
173- # Backup data directory and .env file
173+ # Backup data directory, .env file, and scripts directories
174174backup_data () {
175175 log " Creating backup directory at $BACKUP_DIR ..."
176176
@@ -205,6 +205,23 @@ backup_data() {
205205 else
206206 log_warning " .env file not found, skipping backup"
207207 fi
208+
209+ # Backup scripts directories
210+ local scripts_dirs=(" scripts/ct" " scripts/install" " scripts/tools" " scripts/vm" )
211+ for scripts_dir in " ${scripts_dirs[@]} " ; do
212+ if [ -d " $scripts_dir " ]; then
213+ log " Backing up $scripts_dir directory..."
214+ local backup_name=$( basename " $scripts_dir " )
215+ if ! cp -r " $scripts_dir " " $BACKUP_DIR /$backup_name " ; then
216+ log_error " Failed to backup $scripts_dir directory"
217+ exit 1
218+ else
219+ log_success " $scripts_dir directory backed up successfully"
220+ fi
221+ else
222+ log_warning " $scripts_dir directory not found, skipping backup"
223+ fi
224+ done
208225}
209226
210227# Download and extract latest release
@@ -287,6 +304,7 @@ clear_original_directory() {
287304 " *.backup"
288305 " *.bak"
289306 " .git"
307+ " scripts"
290308 )
291309
292310 # Remove all files except preserved ones
@@ -328,7 +346,7 @@ clear_original_directory() {
328346
329347# Restore backup files before building
330348restore_backup_files () {
331- log " Restoring .env and data directory from backup..."
349+ log " Restoring .env, data directory, and scripts directories from backup..."
332350
333351 if [ -d " $BACKUP_DIR " ]; then
334352 # Restore .env file
@@ -360,6 +378,34 @@ restore_backup_files() {
360378 else
361379 log_warning " No data directory backup found"
362380 fi
381+
382+ # Restore scripts directories
383+ local scripts_dirs=(" ct" " install" " tools" " vm" )
384+ for backup_name in " ${scripts_dirs[@]} " ; do
385+ if [ -d " $BACKUP_DIR /$backup_name " ]; then
386+ local target_dir=" scripts/$backup_name "
387+ log " Restoring $target_dir directory from backup..."
388+
389+ # Ensure scripts directory exists
390+ if [ ! -d " scripts" ]; then
391+ mkdir -p " scripts"
392+ fi
393+
394+ # Remove existing directory if it exists
395+ if [ -d " $target_dir " ]; then
396+ rm -rf " $target_dir "
397+ fi
398+
399+ if mv " $BACKUP_DIR /$backup_name " " $target_dir " ; then
400+ log_success " $target_dir directory restored from backup"
401+ else
402+ log_error " Failed to restore $target_dir directory"
403+ return 1
404+ fi
405+ else
406+ log_warning " No $backup_name directory backup found"
407+ fi
408+ done
363409 else
364410 log_error " No backup directory found for restoration"
365411 return 1
@@ -448,6 +494,7 @@ update_files() {
448494 " update.log"
449495 " *.backup"
450496 " *.bak"
497+ " scripts"
451498 )
452499
453500 # Find the actual source directory (strip the top-level directory)
@@ -666,6 +713,33 @@ rollback() {
666713 log_warning " No .env file backup found"
667714 fi
668715
716+ # Restore scripts directories
717+ local scripts_dirs=(" ct" " install" " tools" " vm" )
718+ for backup_name in " ${scripts_dirs[@]} " ; do
719+ if [ -d " $BACKUP_DIR /$backup_name " ]; then
720+ local target_dir=" scripts/$backup_name "
721+ log " Restoring $target_dir directory from backup..."
722+
723+ # Ensure scripts directory exists
724+ if [ ! -d " scripts" ]; then
725+ mkdir -p " scripts"
726+ fi
727+
728+ # Remove existing directory if it exists
729+ if [ -d " $target_dir " ]; then
730+ rm -rf " $target_dir "
731+ fi
732+
733+ if mv " $BACKUP_DIR /$backup_name " " $target_dir " ; then
734+ log_success " $target_dir directory restored from backup"
735+ else
736+ log_error " Failed to restore $target_dir directory"
737+ fi
738+ else
739+ log_warning " No $backup_name directory backup found"
740+ fi
741+ done
742+
669743 # Clean up backup directory
670744 log " Cleaning up backup directory..."
671745 rm -rf " $BACKUP_DIR "
0 commit comments