From 257b4060c0177ac035501330b3587a13c37bd844 Mon Sep 17 00:00:00 2001 From: shibao Date: Thu, 23 May 2024 11:30:18 -0400 Subject: [PATCH] improve scripts --- etc/ssh/sshrc | 1 + home/default/scripts/generate-playlists | 62 +------------------ home/default/scripts/standardize-music | 16 +++-- home/default/scripts/sync-car | 20 ++++++ home/default/scripts/sync-mp3-player | 19 ++++++ ...thing-conflicts => syncthing-rm-conflicts} | 0 home/default/scripts/syncthing-rm-stversions | 9 +++ home/default/scripts/system-download | 5 ++ .../{prune-free-space => system-free-space} | 2 + home/default/scripts/system-update | 6 ++ .../{update-mirrors => system-update-mirrors} | 0 11 files changed, 72 insertions(+), 68 deletions(-) create mode 100644 etc/ssh/sshrc create mode 100755 home/default/scripts/sync-car create mode 100755 home/default/scripts/sync-mp3-player rename home/default/scripts/{clean-syncthing-conflicts => syncthing-rm-conflicts} (100%) create mode 100755 home/default/scripts/syncthing-rm-stversions create mode 100644 home/default/scripts/system-download rename home/default/scripts/{prune-free-space => system-free-space} (69%) create mode 100755 home/default/scripts/system-update rename home/default/scripts/{update-mirrors => system-update-mirrors} (100%) diff --git a/etc/ssh/sshrc b/etc/ssh/sshrc new file mode 100644 index 0000000..b99c0bc --- /dev/null +++ b/etc/ssh/sshrc @@ -0,0 +1 @@ +/home/default/syncthing/default/scripts/login-notify diff --git a/home/default/scripts/generate-playlists b/home/default/scripts/generate-playlists index e85107a..5d65bce 100755 --- a/home/default/scripts/generate-playlists +++ b/home/default/scripts/generate-playlists @@ -1,64 +1,8 @@ #!/usr/bin/env sh set -ou pipefail -# Generates playlists for all mp3 and flac files in a directory, ignoring itself in the "parent" folder - -PLAYLIST_FOLDER="/home/default/Music/playlists/mpd" # Playlist folder for mpd -PREFIX="music/playlists" # relative links to add to playlists, based on mpd virtual file structure -EXTENSIONS=("mp3" "opus" "flac" "m4a" "mkv" "webm") - -# Disable nullglob and set pattern matching to fix spaces -shopt -s nullglob -SAVEIFS=$IFS -IFS=$(echo -en "\n\b") - -cd $PLAYLIST_FOLDER || { echo "Could not cd into PLAYLIST_FOLDER"; exit 1; } -parent=`basename $PWD` - -# Delete old generated playlists -if [[ -f "*.gen.m3u" ]]; then - rm *.gen.m3u -fi -if [[ -f ".trackNames" ]]; then - rm .trackNames -fi - -# For all playlist directories to generate -for playlistDir in ../*; do - if [[ -d "$playlistDir" ]] && [[ "$playlistDir" != "../$parent" ]]; then - # playlist filename needed for mpd - playlist=`echo "$playlistDir" | sed "s/^\.\.\///g"` - # escaped version of filename needed for bash - escaped=`printf '%q\n' "$playlist"` - - # echo "playlist=$playlist" - # echo "escaped=$escaped" - - # touch file - > "$playlist.gen.m3u" - - # write all files with newlines - > .track-names - - for EXT in ${EXTENSIONS[@]}; do - # echo `find "../$playlist" -mindepth 1 -type f -name "*.$EXT" -printf x | wc -c` - if [[ `find "../$playlist" -mindepth 1 -type f -name "*.$EXT" -printf x | wc -c` != 0 ]]; then - ls -1 ../$escaped/*.$EXT >> .track-names 2> /dev/null - # echo `ls -1 ../$playlist/*.$EXT >> 2> /dev/null` - fi - done - - # echo `cat .track-names` - cat .track-names | while IFS="" read -r song || [ -n "$song" ] ; do - unprefixed=`echo "$song" | sed "s/^\.\.\///g"` - # echo "$PREFIX/$unprefixed" - echo "$PREFIX/$unprefixed" >> "$playlist.gen.m3u" - done < .track-names - - if [[ -f ".track-names" ]]; then - rm .track-names - fi -fi +for dir in */; do + name=`echo "$dir" | sed 's/\/$//g'` + (cd $dir && ls | grep -v -E '\.txt|\.m3u' > "$name.m3u") done -IFS=$SAVEIFS diff --git a/home/default/scripts/standardize-music b/home/default/scripts/standardize-music index 4c84669..1b258ff 100755 --- a/home/default/scripts/standardize-music +++ b/home/default/scripts/standardize-music @@ -1,17 +1,15 @@ #!/usr/bin/env sh set -oux pipefail -# removes more modern codecs to just files that can fit on my mp3 player - -count=`ls -1 *.M4A 2>/dev/null | wc -l` +count=`ls -1 *.OGG 2>/dev/null | wc -l` if [ $count != 0 ]; then - rename M4A m4a *.M4A + rename OGG ogg *.OGG fi -count=`ls -1 *.m4a 2>/dev/null | wc -l` +count=`ls -1 *.ogg 2>/dev/null | wc -l` if [ $count != 0 ]; then - for i in *.m4a; do - ffmpeg -y -i "$i" "${i%.*}.ogg" && rm "$i" + for i in *.ogg; do + ffmpeg -y -i "$i" "${i%.*}.m4a" -map_metadata 0:s:a:0 && rm "$i" done fi @@ -23,7 +21,7 @@ fi count=`ls -1 *.webm 2>/dev/null | wc -l` if [ $count != 0 ]; then for i in *.webm; do - ffmpeg -y -i "$i" "${i%.*}.ogg" && rm "$i" + ffmpeg -y -i "$i" "${i%.*}.m4a" -map_metadata 0:s:a:0 && rm "$i" done fi @@ -35,7 +33,7 @@ fi count=`ls -1 *.opus 2>/dev/null | wc -l` if [ $count != 0 ]; then for i in *.opus; do - ffmpeg -y -i "$i" "${i%.*}.ogg" && rm "$i" + ffmpeg -y -i "$i" "${i%.*}.m4a" -map_metadata 0:s:a:0 && rm "$i" done fi diff --git a/home/default/scripts/sync-car b/home/default/scripts/sync-car new file mode 100755 index 0000000..41ebb2a --- /dev/null +++ b/home/default/scripts/sync-car @@ -0,0 +1,20 @@ +#!/usr/bin/env sh +set -eou pipefail + +sudo mkdir -p /run/media/default/ +if [[ ! -d /run/media/default/MUSIC ]]; then + echo "mounting /run/media/default/MUSIC" + sudo mkdir /run/media/default/MUSIC + sudo mount -U E6F8-C183 /run/media/default/MUSIC +fi + +echo "syncing music..." +sudo rsync --info=progress2 -W -r --delete ~/Music/* /run/media/default/MUSIC/ + +cd /run/media/default/MUSIC +sudo generate-playlists +cd /home/default + +echo "unmounting /run/media/default/MUSIC" +sudo umount /run/media/default/MUSIC +sudo rmdir /run/media/default/MUSIC diff --git a/home/default/scripts/sync-mp3-player b/home/default/scripts/sync-mp3-player new file mode 100755 index 0000000..5d37df3 --- /dev/null +++ b/home/default/scripts/sync-mp3-player @@ -0,0 +1,19 @@ +#!/usr/bin/env sh +set -eou pipefail + +if [[ ! -d /run/media/default/MUSIC ]]; then + echo "mounting /run/media/default/MUSIC" + sudo mkdir /run/media/default/MUSIC + sudo mount -U DB09-89C3 /run/media/default/MUSIC +fi + +echo "syncing music..." +sudo rsync --info=progress2 -W -r --delete ~/Music/* /run/media/default/MUSIC/ + +cd /run/media/default/MUSIC +sudo generate-playlists +cd /home/default + +echo "unmounting /run/media/default/MUSIC" +sudo umount /run/media/default/MUSIC +sudo rmdir /run/media/default/MUSIC diff --git a/home/default/scripts/clean-syncthing-conflicts b/home/default/scripts/syncthing-rm-conflicts similarity index 100% rename from home/default/scripts/clean-syncthing-conflicts rename to home/default/scripts/syncthing-rm-conflicts diff --git a/home/default/scripts/syncthing-rm-stversions b/home/default/scripts/syncthing-rm-stversions new file mode 100755 index 0000000..75eae2a --- /dev/null +++ b/home/default/scripts/syncthing-rm-stversions @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +if compgen -G "/home/default/syncthing/*/.stversions/*" > /dev/null; then + rm -rf /home/default/syncthing/*/.stversions/* + echo "deleted all .stversions" +else + echo "no .stversions to remove" +fi diff --git a/home/default/scripts/system-download b/home/default/scripts/system-download new file mode 100644 index 0000000..bbef246 --- /dev/null +++ b/home/default/scripts/system-download @@ -0,0 +1,5 @@ +#!/usr/bin/env sh +set -eou pipefail + +system-update-mirrors +pacman -Syuw --noconfirm diff --git a/home/default/scripts/prune-free-space b/home/default/scripts/system-free-space similarity index 69% rename from home/default/scripts/prune-free-space rename to home/default/scripts/system-free-space index 6a56573..065bb50 100755 --- a/home/default/scripts/prune-free-space +++ b/home/default/scripts/system-free-space @@ -1,6 +1,8 @@ #!/usr/bin/env sh set -eoux pipefail +rm -rf ~/.cache +sudo rm -rf /var/cache/pacman/pkg/* yay -Sc --noconfirm sudo pacman -Sc --noconfirm sudo journalctl --vacuum-size=1G diff --git a/home/default/scripts/system-update b/home/default/scripts/system-update new file mode 100755 index 0000000..672ea55 --- /dev/null +++ b/home/default/scripts/system-update @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -eoux pipefail + +system-prune-space +yay --noconfirm -Syu --overwrite \* +system-prune-space diff --git a/home/default/scripts/update-mirrors b/home/default/scripts/system-update-mirrors similarity index 100% rename from home/default/scripts/update-mirrors rename to home/default/scripts/system-update-mirrors