improve scripts

This commit is contained in:
shibao 2024-05-23 11:30:18 -04:00
parent 50087596d0
commit 42278169d5
13 changed files with 81 additions and 70 deletions

1
etc/ssh/sshrc Normal file
View File

@ -0,0 +1 @@
/home/default/syncthing/default/scripts/login-notify

7
home/default/scripts/add-song Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env sh
set -eou pipefail
echo "$1" | wget-titles-from-urls >> titles.txt
echo "$1" | youtube-audio
standardize-music
ls -Art | tail -n 1 | xargs -d '\n' kid3

View File

@ -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

View File

@ -10,7 +10,7 @@ fi
count=`ls -1 *.jpg 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.jpg; do
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done
fi
@ -24,7 +24,7 @@ fi
count=`ls -1 *.png 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.png; do
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done
fi

View File

@ -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

20
home/default/scripts/sync-car Executable file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
set -eou pipefail
system-update-mirrors
pacman -Syuw --noconfirm

View File

@ -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

View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -eoux pipefail
system-prune-space
yay --noconfirm -Syu --overwrite \*
system-prune-space