dotfiles/home/default/scripts/tag
shibao e77854b6b5 add sway config
add bashrc
ignore xauthority
add autounlocking keepass desktop entry
add fonts for waybar
add alacritty config
move scripts location and adjust bashrc
use materia
theme sway and lockscreen
add list packages script
add ranger desktop item
add mpd config
add indicator ring to swaylock
remove mpd password
add global asdf tool versions
add mako config
update keys
add swaylock theme
add suspend to lock config
move ssh commands to aliases
tweak mpd section in waybar
add kanshi config for work
update bashrc
2021-11-20 18:17:22 -05:00

60 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
err() { echo "Usage:
tag [OPTIONS] file
Options:
-a: artist/author
-t: song/chapter title
-A: album/book title
-n: track/chapter number
-N: total number of tracks/chapters
-d: year of publication
-g: genre
-c: comment
You will be prompted for title, artist, album and track if not given." && exit 1 ;}
while getopts "a:t:A:n:N:d:g:c:f:" o; do case "${o}" in
a) artist="${OPTARG}" ;;
t) title="${OPTARG}" ;;
A) album="${OPTARG}" ;;
n) track="${OPTARG}" ;;
N) total="${OPTARG}" ;;
d) date="${OPTARG}" ;;
g) genre="${OPTARG}" ;;
c) comment="${OPTARG}" ;;
f) file="${OPTARG}" ;;
*) printf "Invalid option: -%s\\n" "$OPTARG" && err ;;
esac done
shift $((OPTIND - 1))
file="$1"
[ ! -f "$file" ] && echo "Provide file to tag." && err
[ -z "$title" ] && echo "Enter a title." && read -r title
[ -z "$artist" ] && echo "Enter an artist." && read -r artist
[ -z "$album" ] && echo "Enter an album." && read -r album
[ -z "$track" ] && echo "Enter a track number." && read -r track
case "$file" in
*.ogg) echo "Title=$title
Artist=$artist
Album=$album
Track=$track
Total=$total
Date=$date
Genre=$genre
Comment=$comment" | vorbiscomment -w "$file" ;;
*.opus) echo "Title=$title
Artist=$artist
Album=$album
Track=$track
Total=$total
Date=$date
Genre=$genre
Comment=$comment" | opustags -i -S "$file" ;;
*.mp3) eyeD3 -Q --remove-all -a "$artist" -A "$album" -t "$title" -n "$track" -N "$total" -Y "$date" "$file" ;;
*) echo "File type not implemented yet." ;;
esac