Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d9372881bf | |||
| e9add46de0 | |||
| e0728a6ab3 | |||
| bd7b0be8e6 | |||
| 70e2b73883 | |||
| c5397a501b | |||
| 542ba1b9b0 | |||
| a7cb1db0bc | |||
| fe5c02be27 | |||
| 478877475b | |||
|
|
0445d33adc | ||
| bb2c970a71 | |||
| b5f64677ee |
@@ -4,6 +4,7 @@ A small wrapper and custom list for fortune/misfortune that picks a random Teto
|
||||
|
||||
## **Enable Audio to Hear "Teto Song of the Day!" in your terminal from Utau, SynthV, or SynthV2 Teto!**
|
||||
Sound plays based on the song you get! Utau for Utau! SV for SV!
|
||||
|
||||
https://github.com/user-attachments/assets/bc2a9909-d24a-43fa-882a-5e785cda3020
|
||||
|
||||
## **Now With Optional Automatic Updates!**
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#!/usr/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
cd $HOME
|
||||
yes | rm -r tetosong
|
||||
git clone git@github.com:eric5949/tetosong.git
|
||||
cd tetosong
|
||||
ARTIST=140308 # 116 is Kasane Teto
|
||||
@@ -6,10 +8,10 @@ CHILDREN="true" # If we want child voicebanks, we do so we can get all songs fro
|
||||
START=0 # Start at the beginning of the recordset. if i wanted to make the file in chunks to use the api less i would use this and max to get the songs in chunks. They say dont use it "thousands of times a day", getting every teto song is 280 times. I think I'm ok. maybe.
|
||||
RESULTS=100 # Max results. Limit is 100.
|
||||
MAX=30000 # when to stop, there's as of 4-23-26 over 28,000 songs featuring Kasane Teto in the recordset i have selected.
|
||||
if [ ! -f var.json ]; then # var.json has our latest date, we use it to know where to stop going back, past it the songs already exist in the fortune file.
|
||||
echo '{"lastDate": "2000-04-21T00:00:00Z"}' > var.json # if it doesn't exist, we create it with a default date back in 2000.
|
||||
if [ ! -f dates/${ARTIST}var.json ]; then # var.json has our latest date, we use it to know where to stop going back, past it the songs already exist in the fortune file.
|
||||
echo '{"lastDate": "2000-04-21T00:00:00Z"}' > dates/${ARTIST}var.json # if it doesn't exist, we create it with a default date back in 2000.
|
||||
fi
|
||||
PREVDATE=$(jq -r '.lastDate' var.json)
|
||||
PREVDATE=$(jq -r '.lastDate' dates/${ARTIST}var.json)
|
||||
AFTERDATE=$(date -u -d "$PREVDATE + 1 Second" +"%Y-%m-%dT%H:%M:%SZ")
|
||||
echo "Result: $AFTERDATE"
|
||||
#rm tetofortunes var.json tetofortunes.dat # during testing we will remove everything, or if we want to regenerate the fortune file from scratch.
|
||||
@@ -25,9 +27,9 @@ if [ "$SONGS" -eq 0 ]; then
|
||||
echo "Result is empty. No more songs."
|
||||
exit 0
|
||||
fi
|
||||
DATE=$(echo "$DATA" | jq -r '.items[0].publishDate')
|
||||
DATE=$(date -u +%Y-%m-%dT00:00:00Z)
|
||||
echo "DATE: $DATE"
|
||||
echo "{\"lastDate\": \"$DATE\"}" > var.json
|
||||
echo "{\"lastDate\": \"$DATE\"}" > dates/${ARTIST}var.json
|
||||
# looping the api to get all songs we need.
|
||||
while true; do
|
||||
CURLURL="https://vocadb.net/api/songs?songTypes=Original&afterDate=${AFTERDATE}&&artistId%5B%5D=${ARTIST}&childVoicebanks=${CHILDREN}&onlyWithPvs=true&status=Finished&start=${START}&maxResults=${RESULTS}&sort=PublishDate&fields=PVs"
|
||||
@@ -49,8 +51,8 @@ while true; do
|
||||
echo "$url"
|
||||
echo ""
|
||||
echo "▼・ᴗ・▼"
|
||||
echo "%"
|
||||
done >> tetofortunes
|
||||
echo "\`"
|
||||
done >> vocafortunes/vocadb/$ARTIST
|
||||
if [ "$START" -ge "$MAX" ]; then
|
||||
echo "Reached max results. Stopping."
|
||||
break
|
||||
@@ -58,8 +60,42 @@ while true; do
|
||||
echo "Done!"
|
||||
fi
|
||||
done
|
||||
|
||||
readarray -d '`' tetosongs < vocafortunes/vocadb/$ARTIST
|
||||
|
||||
readarray -td '' dups < <(
|
||||
(( ${#tetosongs[@]} == 0 )) ||
|
||||
printf '%s\0' "${tetosongs[@]}" |
|
||||
LC_ALL=C sort -z |
|
||||
LC_ALL=C uniq -zd
|
||||
)
|
||||
readarray -td '' uniq < <(
|
||||
(( ${#tetosongs[@]} == 0 )) ||
|
||||
printf '%s\0' "${tetosongs[@]}" |
|
||||
LC_ALL=C sort -z |
|
||||
LC_ALL=C uniq -zu
|
||||
)
|
||||
|
||||
echo ${#tetosongs[@]}
|
||||
if ((${#dups[@]} > 0)); then
|
||||
echo >&2 "array has duplicates:"
|
||||
echo ${#dups[@]}
|
||||
fi
|
||||
if ((${#uniq[@]} > 0)); then
|
||||
echo >&2 "Uniques:"
|
||||
echo ${#uniq[@]}
|
||||
fi
|
||||
|
||||
printf >&2 '%s' "${dups[@]}" > dups
|
||||
printf >&2 '%s' "${uniq[@]}" > uniq
|
||||
|
||||
cat uniq > fixed
|
||||
cat dups >> fixed
|
||||
sed -i '1,/^TETO SONG OF THE DAY!/{/^TETO SONG OF THE DAY!$/!d}' fixed
|
||||
rm vocafortunes/vocadb/$ARTIST
|
||||
rm uniq dups
|
||||
mv fixed vocafortunes/vocadb/$ARTIST
|
||||
# create the fortune database from tetofortunes
|
||||
rm tetofortunes.dat # delete the old database if it extists.
|
||||
strfile -c % tetofortunes tetofortunes.dat
|
||||
git add vocafortunes/vocadb/$ARTIST dates/${ARTIST}var.json
|
||||
git commit -m "Update fortune files"
|
||||
git push -u origin main
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
#!/usr/bin/bash
|
||||
#
|
||||
# Updated 5-1-2026 to use new vocafortunes script instead of fortune/misfortune
|
||||
#
|
||||
#
|
||||
# download custom fortunes and config file
|
||||
echo "Updating tetosong..."
|
||||
# check if the config file exists, if not download it and prompt the user for options.
|
||||
|
||||
#### remove files from old version
|
||||
rm -rf ~/.local/share/tetosong/fortunes/
|
||||
# add new files
|
||||
mkdir -p ~/.local/share/tetosong
|
||||
|
||||
|
||||
mkdir -p ~/.local/share/tetosong/fortunes
|
||||
mkdir -p ~/.local/share/tetosong/fortunes/tetosotd
|
||||
curl -sLo ~/.local/share/tetosong/fortunes/tetosotd/tetofortunes https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/fortunes/tetosotd/tetofortunes
|
||||
curl -sLo ~/.local/sharetetosong/fortunes/tetosotd/tetofortunes.dat https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/fortunes/tetosotd/tetofortunes.dat
|
||||
mkdir -p ~/.local/share/tetosong/vocafortunes
|
||||
mkdir -p ~/.local/share/tetosong/vocafortunes/vocadb
|
||||
curl -sLo ~/.local/share/tetosong/vocafortunes/vocadb/140308 https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/vocafortunes/vocadb/140308
|
||||
AUDIO="$(. ~/.local/share/tetosong/tetosong.config; echo $AUDIO)"
|
||||
if [ "$AUDIO" = "YES" ]; then
|
||||
curl -sLo ~/.local/share/tetosong/SOTD.zip https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/audio/teto/SOTD.zip
|
||||
@@ -37,5 +42,7 @@ fi
|
||||
echo "writing tetosong to ~/.local/bin"
|
||||
mkdir -p ~/.local/bin
|
||||
curl -sLo ~/.local/bin/tetosong https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/tetosong
|
||||
curl -sLo ~/.local/bin/tetosong https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/vocafortune
|
||||
chmod +x ~/.local/bin/tetosong
|
||||
echo "Update complete"
|
||||
chmod +x ~/.local/bin/vocafortune
|
||||
echo "Make sure ~/.local/bin is in your PATH and you can get your Teto Song Of the Day by typing in tetosong or adding it to your bashrc :)"
|
||||
|
||||
1
dates/140308var.json
Normal file
1
dates/140308var.json
Normal file
@@ -0,0 +1 @@
|
||||
{"lastDate": "2026-05-02T00:00:00Z"}
|
||||
Binary file not shown.
37
installer.sh
37
installer.sh
@@ -1,27 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
# check which fortune command is installed if any.
|
||||
if ! [ -x "$(command -v fortune)" ]; then
|
||||
echo 'fortune is not installed, checking for misfortune'm
|
||||
if ! [ -x "$(command -v misfortune)" ]; then
|
||||
echo 'neither program is installed, exiting'
|
||||
exit 1
|
||||
else
|
||||
echo 'misfortune found'
|
||||
fi
|
||||
else
|
||||
echo 'fortune found'
|
||||
fi
|
||||
#
|
||||
# Updated 5-1-2026 to use new vocafortunes script instead of fortune/misfortune
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
# download custom fortunes and config file
|
||||
echo "Downloading custom fortunes and config file..."
|
||||
# download the config file and prompt the user for options.
|
||||
mkdir -p ~/.local/share/tetosong
|
||||
curl -sLo ~/.local/share/tetosong/tetosong.config https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/test/tetosong.config
|
||||
curl -sLo ~/.local/share/tetosong/tetosong.config https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/tetosong.config
|
||||
read -p "Do you want to hear Teto in your terminal? (y/n) " yn
|
||||
case $yn in
|
||||
[Yy]* )
|
||||
sed -i 's|^AUDIO=.*|AUDIO="YES"|' ~/.local/share/tetosong/tetosong.config
|
||||
curl -sLo /tmp/SOTD.zip https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/test/audio/teto/SOTD.zip
|
||||
curl -sLo /tmp/SOTD.zip https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/audio/teto/SOTD.zip
|
||||
mkdir -p ~/.local/share/tetosong/audio/
|
||||
mkdir -p ~/.local/share/tetosong/audio/teto/
|
||||
unzip -o /tmp/SOTD.zip -d ~/.local/share/tetosong/audio/teto/
|
||||
@@ -38,10 +31,10 @@ case $yn in
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
|
||||
mkdir -p ~/.local/share/tetosong/fortunes
|
||||
mkdir -p ~/.local/share/tetosong/fortunes/tetosotd
|
||||
curl -sLo ~/.local/share/tetosong/fortunes/tetosotd/tetofortunes https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/test/fortunes/tetosotd/tetofortunes
|
||||
curl -sLo ~/.local/share/tetosong/fortunes/tetosotd/tetofortunes.dat https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/test/fortunes/tetosotd/tetofortunes.dat
|
||||
mkdir -p ~/.local/share/tetosong/vocafortunes
|
||||
mkdir -p ~/.local/share/tetosong/vocafortunes/vocadb
|
||||
curl -sLo ~/.local/share/tetosong/vocafortunes/vocadb/140308 https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/vocafortunes/vocadb/140308
|
||||
|
||||
|
||||
# set up autoupdater
|
||||
# i use systemd, so i use systemd timers. I'll figure out something for non-systemd users later.
|
||||
@@ -50,8 +43,8 @@ if [ "$AUTOUPDATE" = "YES" ]; then
|
||||
# write and enable systemd service file and timer user services
|
||||
echo "Autoupdater enabled, updating service..."
|
||||
mkdir -p ~/.config/systemd/user
|
||||
curl -sLo ~/.config/systemd/user/tetosong.service https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/test/autoupdater/tetosong.service
|
||||
curl -sLo ~/.config/systemd/user/tetosong.timer https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/test/autoupdater/tetosong.timer
|
||||
curl -sLo ~/.config/systemd/user/tetosong.service https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/autoupdater/tetosong.service
|
||||
curl -sLo ~/.config/systemd/user/tetosong.timer https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/autoupdater/tetosong.timer
|
||||
systemctl --user daemon-reload
|
||||
systemctl --user enable tetosong.timer
|
||||
systemctl --user start tetosong.timer
|
||||
@@ -61,6 +54,8 @@ fi
|
||||
# write tetosong to ~/.local/bin and tell the user how to use it.
|
||||
echo "writing tetosong to ~/.local/bin"
|
||||
mkdir -p ~/.local/bin
|
||||
curl -sLo ~/.local/bin/tetosong https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/test/tetosong
|
||||
curl -sLo ~/.local/bin/tetosong https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/tetosong
|
||||
curl -sLo ~/.local/bin/vocafortune https://raw.githubusercontent.com/eric5949/tetosong/refs/heads/main/vocafortune
|
||||
chmod +x ~/.local/bin/tetosong
|
||||
chmod +x ~/.local/bin/vocafortune
|
||||
echo "Make sure ~/.local/bin is in your PATH and you can get your Teto Song Of the Day by typing in tetosong or adding it to your bashrc :)"
|
||||
|
||||
@@ -4,10 +4,10 @@ CHILDREN="true" # If we want child voicebanks, we do so we can get all songs fro
|
||||
START=0 # Start at the beginning of the recordset. if i wanted to make the file in chunks to use the api less i would use this and max to get the songs in chunks. They say dont use it "thousands of times a day", getting every teto song is 280 times. I think I'm ok. maybe.
|
||||
RESULTS=100 # Max results. Limit is 100.
|
||||
MAX=30000 # when to stop, there's as of 4-23-26 over 28,000 songs featuring Kasane Teto in the recordset i have selected.
|
||||
if [ ! -f var.json ]; then # var.json has our latest date, we use it to know where to stop going back, past it the songs already exist in the fortune file.
|
||||
echo '{"lastDate": "2000-04-21T00:00:00Z"}' > var.json # if it doesn't exist, we create it with a default date back in 2000.
|
||||
if [ ! -f dates/${ARTIST}var.json ]; then # var.json has our latest date, we use it to know where to stop going back, past it the songs already exist in the fortune file.
|
||||
echo '{"lastDate": "2000-04-21T00:00:00Z"}' > dates/${ARTIST}var.json # if it doesn't exist, we create it with a default date back in 2000.
|
||||
fi
|
||||
PREVDATE=$(jq -r '.lastDate' var.json)
|
||||
PREVDATE=$(jq -r '.lastDate' dates/${ARTIST}var.json)
|
||||
AFTERDATE=$(date -u -d "$PREVDATE + 1 Second" +"%Y-%m-%dT%H:%M:%SZ")
|
||||
echo "Result: $AFTERDATE"
|
||||
#rm tetofortunes var.json tetofortunes.dat # during testing we will remove everything, or if we want to regenerate the fortune file from scratch.
|
||||
@@ -23,9 +23,9 @@ if [ "$SONGS" -eq 0 ]; then
|
||||
echo "Result is empty. No more songs."
|
||||
exit 0
|
||||
fi
|
||||
DATE=$(echo "$DATA" | jq -r '.items[0].publishDate')
|
||||
DATE=$(date -u +%Y-%m-%dT00:00:00Z)
|
||||
echo "DATE: $DATE"
|
||||
echo "{\"lastDate\": \"$DATE\"}" > var.json
|
||||
echo "{\"lastDate\": \"$DATE\"}" > dates/${ARTIST}var.json
|
||||
# looping the api to get all songs we need.
|
||||
while true; do
|
||||
CURLURL="https://vocadb.net/api/songs?songTypes=Original&afterDate=${AFTERDATE}&&artistId%5B%5D=${ARTIST}&childVoicebanks=${CHILDREN}&onlyWithPvs=true&status=Finished&start=${START}&maxResults=${RESULTS}&sort=PublishDate&fields=PVs"
|
||||
@@ -47,8 +47,8 @@ while true; do
|
||||
echo "$url"
|
||||
echo ""
|
||||
echo "▼・ᴗ・▼"
|
||||
echo "%"
|
||||
done >> tetofortunes
|
||||
echo "\`"
|
||||
done >> vocafortunes/vocadb/$ARTIST
|
||||
if [ "$START" -ge "$MAX" ]; then
|
||||
echo "Reached max results. Stopping."
|
||||
break
|
||||
@@ -56,6 +56,42 @@ while true; do
|
||||
echo "Done!"
|
||||
fi
|
||||
done
|
||||
|
||||
readarray -d '`' tetosongs < vocafortunes/vocadb/$ARTIST
|
||||
|
||||
readarray -td '' dups < <(
|
||||
(( ${#tetosongs[@]} == 0 )) ||
|
||||
printf '%s\0' "${tetosongs[@]}" |
|
||||
LC_ALL=C sort -z |
|
||||
LC_ALL=C uniq -zd
|
||||
)
|
||||
readarray -td '' uniq < <(
|
||||
(( ${#tetosongs[@]} == 0 )) ||
|
||||
printf '%s\0' "${tetosongs[@]}" |
|
||||
LC_ALL=C sort -z |
|
||||
LC_ALL=C uniq -zu
|
||||
)
|
||||
|
||||
echo ${#tetosongs[@]}
|
||||
if ((${#dups[@]} > 0)); then
|
||||
echo >&2 "array has duplicates:"
|
||||
echo ${#dups[@]}
|
||||
fi
|
||||
if ((${#uniq[@]} > 0)); then
|
||||
echo >&2 "Uniques:"
|
||||
echo ${#uniq[@]}
|
||||
fi
|
||||
|
||||
printf >&2 '%s' "${dups[@]}" > dups
|
||||
printf >&2 '%s' "${uniq[@]}" > uniq
|
||||
|
||||
cat uniq > fixed
|
||||
cat dups >> fixed
|
||||
sed -i '1,/^TETO SONG OF THE DAY!/{/^TETO SONG OF THE DAY!$/!d}' fixed
|
||||
rm vocafortunes/vocadb/$ARTIST
|
||||
rm uniq dups
|
||||
mv fixed vocafortunes/vocadb/$ARTIST
|
||||
|
||||
# create the fortune database from tetofortunes
|
||||
rm tetofortunes.dat # delete the old database if it extists.
|
||||
strfile -c % tetofortunes tetofortunes.dat
|
||||
#rm tetofortunes.dat # delete the old database if it extists.
|
||||
#strfile -c % tetofortunes tetofortunes.dat
|
||||
|
||||
51
tetosong
51
tetosong
@@ -1,4 +1,9 @@
|
||||
#!/usr/bin/bash
|
||||
#
|
||||
# Updated 5-1-26 to use new vocafortune script and not require fortune/misfortune.
|
||||
#
|
||||
#
|
||||
|
||||
# argument handling
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
@@ -31,41 +36,17 @@ fi
|
||||
# check if the user wants to play audio
|
||||
AUDIO="$(. ~/.local/share/tetosong/tetosong.config; echo $AUDIO)"
|
||||
|
||||
# check which fortune command is installed if any and then run it
|
||||
if ! [ -x "$(command -v fortune)" ]; then
|
||||
if ! [ -x "$(command -v misfortune)" ]; then
|
||||
echo 'No fortune commmand is installed, exiting!'
|
||||
exit 1
|
||||
else
|
||||
misfortune ~/.local/share/tetosong/fortunes/*/* >> /tmp/fortune # fortune and misfortune handle directories differently
|
||||
if [ "$AUDIO" = "YES" ]; then # i guess i could foregoe checking and just run the audio either way since i dont download it unless the user enables it, but i want them to be ableto turn it off if they choose to
|
||||
if grep -q "SV2" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/sv2SOTD.wav 2>/dev/null >/dev/null &
|
||||
elif grep -q "SV" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/svSOTD.wav 2>/dev/null >/dev/null &
|
||||
elif grep -q "重音テト" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/utSOTD.wav 2>/dev/null >/dev/null &
|
||||
else
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/sv2SOTD.wav 2>/dev/null >/dev/null &
|
||||
fi
|
||||
fi
|
||||
cat /tmp/fortune
|
||||
rm /tmp/fortune
|
||||
fi
|
||||
else
|
||||
fortune ~/.local/share/tetosong/fortunes/* >> /tmp/fortune
|
||||
if [ "$AUDIO" = "YES" ]; then
|
||||
if grep -q "SV2" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/sv2SOTD.wav 2>/dev/null >/dev/null &
|
||||
elif grep -q "SV" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/svSOTD.wav 2>/dev/null >/dev/null &
|
||||
elif grep -q "重音テト" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/utSOTD.wav 2>/dev/null >/dev/null &
|
||||
else
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/sv2SOTD.wav 2>/dev/null >/dev/null &
|
||||
fi
|
||||
vocafortune >> /tmp/fortune
|
||||
if [ "$AUDIO" = "YES" ]; then
|
||||
if grep -q "SV2" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/sv2SOTD.wav 2>/dev/null >/dev/null &
|
||||
elif grep -q "SV" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/svSOTD.wav 2>/dev/null >/dev/null &
|
||||
elif grep -q "重音テト" /tmp/fortune; then
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/utSOTD.wav 2>/dev/null >/dev/null &
|
||||
else
|
||||
nohup ffplay -nodisp -autoexit -v quiet ~/.local/share/tetosong/audio/teto/sv2SOTD.wav 2>/dev/null >/dev/null &
|
||||
fi
|
||||
|
||||
fi
|
||||
cat /tmp/fortune
|
||||
rm /tmp/fortune
|
||||
fi
|
||||
|
||||
10
vocafortune
Executable file
10
vocafortune
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# VOCAFORTUNE! Make tetosong not need fortune anymore!
|
||||
while [ $# -gt 0 ]; do export "${1#-}"="$2"; shift 2; done # now it can be -l ./vocafortunes like a proper program!!!! # argument handling # i can use this anywhere!!!!!!! save this you!!!!!!
|
||||
#fortune script
|
||||
shopt -s globstar
|
||||
if [ -z "$l" ]; then export "DIR"="$HOME/.local/share/tetosong/vocafortunes/**"; else export "DIR"="$l/**"; fi
|
||||
for file in $DIR; do if [[ -f "$file" ]]; then readarray -td '`' temp < "$file"; array+=("${temp[@]}"); fi; done
|
||||
export "ITEMS"="${#array[@]}"
|
||||
export "CHOICE"="$(shuf -i 1-$ITEMS -n 1)"
|
||||
echo "${array[$CHOICE]}"
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user