Compare commits

..

23 Commits

Author SHA1 Message Date
391b0a0b09 Add even shorter aliases for sending and pushing clones, and also allow them to handle Git repos! 2026-04-11 09:31:45 -07:00
a76cb8b5ec Change order in which the scripts are added; do the project's first, then the downloads. 2026-04-10 18:09:40 -07:00
a87c205a80 Finish changes to reload-shared which adds scripts to the local bin. 2026-04-10 18:08:45 -07:00
186519fb0e Minify log functions. 2026-04-10 13:12:30 -07:00
7fa1430b34 Move log functions to shared, 2026-04-10 13:11:13 -07:00
074f0a29bf Explicitly note in sync-all that SYNC folders are not being handled. 2026-04-01 08:45:19 -07:00
bdb06cd0b4 Split SYNC folders out to have their own commands -- for safety! :) 2026-04-01 08:35:53 -07:00
ec9b74d3d8 Add aliases for push and pull called sync, both for individual folders as well as groups. 2026-04-01 08:22:01 -07:00
0bfdc8d411 Add shortcut to process the entire Clones collection. 2026-03-31 19:58:23 -07:00
89c0d0589c Fix OR's to be AND's for checking SYNC folders. 2026-03-31 19:51:26 -07:00
3edd062852 Change single quotes to double so regex works. 2026-03-31 19:44:34 -07:00
bc81d1bedd Add aliases for accidentally typed rewords of commands. 2026-03-31 19:43:47 -07:00
c859b4dcd8 Process folders named as SYNC as both a MASTER and CLONE. 2026-03-31 17:54:22 -07:00
be0469fb94 Enhance logging for subdir datasets. 2026-03-30 13:33:01 -07:00
5351df572b Change where the newline is so each clone is in its own log section. 2026-03-30 11:25:11 -07:00
ef097e973e Change where the newline is so each MASTER is in its own log section. 2026-03-30 11:16:59 -07:00
588007fe37 Change pull script to only do subdirectories in music. 2026-03-30 10:43:03 -07:00
3399b07031 The dashes need escaped even though they are quoted. 2026-03-29 17:57:34 -07:00
f8c8036e5f Fix the remote directory name for pulling. 2026-03-29 17:54:39 -07:00
076641fc9d Fix pull-clones to use pull-clone. ;) 2026-03-29 17:30:46 -07:00
40b53ce8a7 Fix filename to properly have an underscore. 2026-03-29 17:30:13 -07:00
6f8074d56b Add dash to MASTER, so things like SPACEMASTER would not get considered. 2026-03-29 16:59:32 -07:00
e6bc85e761 Add functions for pulling clones. Also add a dash to MASTER check. 2026-03-29 16:58:36 -07:00
4 changed files with 196 additions and 52 deletions

View File

@@ -1,47 +0,0 @@
#!/usr/bin/env bash
# TBD:
# - merge into send-master script and use a variable to control push vs pull.
## Variables ##
PROG="$(basename -- "${BASH_SOURCE[0]}")"
loop=false
DIR="`pwd`"
dir="`basename $DIR`"
## Validations ##
if [[ "$DIR" != *"-clone" ]]; then
echo "'$DIR' is not labeled as a clone. Skipping download."
exit 0
fi
## Main ##
echo "`date` - Pulling" \
"'$PROD_DATA_USER@$PROD_DATA_HOST:$PROD_DATA_PORT$PROD_DATA_DIR/$dir'" \
"to '$dir'."
sleep=0
while true; do
if (( $sleep > 0 )); then
echo "Sleeping for '$sleep' seconds..."
sleep $sleep
fi
clone -e "ssh -p $PROD_DATA_PORT" \
$PROD_DATA_USER@$PROD_DATA_HOST:$PROD_DATA_DIR/$new_dir \
. &&
echo "`date` - Success!" ||
echo "`date` - Failed!"
sleep=30
if [[ "$loop" == false ]]; then
break;
fi
done
## Complete ##
echo "`date` - $PROG complete."
exit 0

66
bin-shared/pull_clone.sh Executable file
View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# TBD:
# - merge into send-master script and use a variable to control push vs pull.
## Variables ##
PROG="$(basename -- "${BASH_SOURCE[0]}")"
loop=false
DIR="`pwd`"
dir="`basename $DIR`"
## Validations ##
if [[ "$DIR" != *"-clone" && "$DIR" != *"-SYNC" ]]; then
echo "'$DIR' is not labeled as a CLONE or SYNC. Skipping download."
exit 0
fi
# Only pull the existing subdirectories rather than ALL content.
subdirs_only="false"
if [[ "$dir" == "music-clone" ]]; then
subdirs_only="true"
fi
## Main ##
echo "`date` - Pulling" \
"'$PROD_DATA_USER@$PROD_DATA_HOST:$PROD_DATA_PORT$PROD_DATA_DIR/$dir'" \
"to '$dir'."
sleep=0
while true; do
if (( $sleep > 0 )); then
echo "Sleeping for '$sleep' seconds..."
sleep $sleep
fi
if [[ "$subdirs_only" == "true" ]]; then
ls $DIR | while read subdir; do
echo -e "\n`date` - Working subdirectory '$subdir'..."
clone -e "ssh -p $PROD_DATA_PORT" \
$PROD_DATA_USER@$PROD_DATA_HOST:$PROD_DATA_DIR/$dir/$subdir/ \
./$subdir &&
echo "`date` - Success!" ||
echo "`date` - Failed!"
done
else
clone -e "ssh -p $PROD_DATA_PORT" \
$PROD_DATA_USER@$PROD_DATA_HOST:$PROD_DATA_DIR/$dir/ \
. &&
echo "`date` - Success!" ||
echo "`date` - Failed!"
fi
sleep=30
if [[ "$loop" == false ]]; then
break;
fi
done
## Complete ##
echo -e "\n`date` - $PROG complete."
exit 0

View File

@@ -14,8 +14,8 @@ dir="`basename $DIR`"
## Validations ## ## Validations ##
if [[ "$DIR" != *"MASTER" ]]; then if [[ "$DIR" != *"-MASTER" && "$DIR" != *"-SYNC" ]]; then
echo "'$DIR' is not labeled as a MASTER. Skipping upload." echo "'$DIR' is not labeled as a MASTER or SYNC. Skipping upload."
exit 0 exit 0
fi fi

View File

@@ -60,6 +60,21 @@ function update-shared {
mv -v $dir/rc_shared.sh ~/.rc_shared mv -v $dir/rc_shared.sh ~/.rc_shared
local_bin="$HOME/bin"
remote_bin="shared-rc-deleteme/bin-shared"
if [[ -d "$local_bin" ]]; then
log "\n`date` - Found '$local_bin', adding scripts.\n"
mv -v $remote_bin/*.sh "$local_bin"/
refactor_script="refactor_music_library.sh"
wget -O "$refactor_script" \
https://git.hyperling.com/me/shell-music-refactor-library/src/branch/main/refactor_music_library.sh
mv -v $refactor_script "$local_bin"/
else
echo "Did not find '$local_bin', did not copy scripts."
fi
log "\n`date` - Done! Removing git clone.\n"
mv -v $dir ~/TRASH/"$dir-`date "+%Y%m%d-%H%M%S"`" mv -v $dir ~/TRASH/"$dir-`date "+%Y%m%d-%H%M%S"`"
log "\n`date` - Complete! Please note this does NOT update bin files." log "\n`date` - Complete! Please note this does NOT update bin files."
@@ -71,6 +86,25 @@ alias shared-reload="update-shared"
# Shortcuts # # Shortcuts #
function send-master { send_master.sh; } function send-master { send_master.sh; }
alias push-master="send-master"
alias sync-master="send-master"
function pull-clone { pull_clone.sh; }
alias get-clone="pull-clone"
alias sync-clone="pull-clone"
alias send-sync="send-master"
alias push-sync="send-master"
alias pull-sync="pull-clone"
alias get-sync="pull-clone"
function sync-sync {
cat <<- EOF
Command not implemented, too dangerous guessing the state of the folder.
Please use push-sync and pull-sync in the correct order for its current state.
EOF
}
function goodbye { update -y; bye; } function goodbye { update -y; bye; }
function clone { function clone {
@@ -80,18 +114,109 @@ function clone {
function now { date "+%Y%m%d-%H%M%S"; } function now { date "+%Y%m%d-%H%M%S"; }
function today { date "+%Y%m%d"; } function today { date "+%Y%m%d"; }
function log { echo -e "$1"; }
function blog { echo -e "\n\n$1\n\n"; }
function pull {
if [[ -d .git ]]; then
git pull --recurse-submodules
else
pull-clone
fi
}
function push {
if [[ -d .git ]]; then
git push && load-stage && load-prod
else
send-master
fi
}
# Enhance Bin Scripts # # Enhance Bin Scripts #
# MASTER and CLONE folders.
function send-masters { function send-masters {
echo -e "`date` - Looping through MASTER directories.\n" echo -e "`date` - Looping through MASTER directories."
ls | grep MASTER | while read dir; do ls | grep "\-MASTER" | while read dir; do
echo -e "`date` - Found '$dir'..." echo -e "\n`date` - Found '$dir'..."
cd $dir cd $dir
send-master send-master
cd .. cd ..
done done
echo -e "\n`date` - Done checking for MASTER directories." echo -e "\n`date` - Done checking for MASTER directories."
} }
alias push-masters="send-masters"
alias sync-masters="send-masters"
function pull-clones {
echo -e "`date` - Looping through clone directories."
ls | grep "\-clone" | while read dir; do
echo -e "\n`date` - Found '$dir'..."
cd $dir
pull-clone
cd ..
done
echo -e "\n`date` - Done checking for clone directories."
}
alias get-clones="pull-clones"
alias sync-clones="pull-clones"
function sync-all {
push-masters
echo -e "\n"
pull-clones
echo -e "\n`date` - Skipping SYNC folders! Please do their loads separately."
ls | grep "\-SYNC" | while read dir; do
echo "- $dir"
done
echo -e "`date` - \nDone."
}
function sync-all-loop {
while true; do
sync-all
echo -e "\n\n*** Sleeping... ***\n\n"
sleep 30
done
}
# SYNC folders.
function send-syncs {
echo -e "`date` - Looping through SYNC directories."
ls | grep "\-SYNC" | while read dir; do
echo -e "\n`date` - Found '$dir'..."
cd $dir
send-master
cd ..
done
echo -e "\n`date` - Done checking for SYNC directories."
}
alias push-syncs="send-syncs"
function pull-syncs {
echo -e "`date` - Looping through SYNC directories."
ls | grep "\-SYNC" | while read dir; do
echo -e "\n`date` - Found '$dir'..."
cd $dir
pull-clone
cd ..
done
echo -e "\n`date` - Done checking for SYNC directories."
}
alias get-syncs="pull-syncs"
function sync-syncs {
cat <<- EOF
Command not implemented, too dangerous guessing the state of the folder.
Please use push-syncs and pull-syncs in the correct order for its current state.
EOF
}
# Audio # # Audio #