diff options
| author | Timmy Keller <tjk@tjkeller.xyz> | 2021-10-20 20:16:23 -0500 | 
|---|---|---|
| committer | Timmy Keller <tjk@tjkeller.xyz> | 2021-10-20 20:16:23 -0500 | 
| commit | 57b01e3d118c92af0ee6421a241fc34c393d5e84 (patch) | |
| tree | bc06b2a138a4531e6351e7ec2c61e538d7f4b9e3 /misc | |
| parent | 83944c6497381a77bd118a0d89107992c8f047a9 (diff) | |
| download | scripts-57b01e3d118c92af0ee6421a241fc34c393d5e84.tar.xz scripts-57b01e3d118c92af0ee6421a241fc34c393d5e84.zip  | |
updated mime script almost done i think
Diffstat (limited to 'misc')
| -rwxr-xr-x | misc/mime | 42 | 
1 files changed, 28 insertions, 14 deletions
@@ -2,7 +2,7 @@  # Media type csv caching  cachedir="${XDG_CACHE_HOME:-$HOME/.cache}/mimewiz"  mtypesrc="https://www.iana.org/assignments/media-types" -mtypes="`grep -v '#'`"<< TYPES +mtypes="`grep -v '#'`" << TYPES  #application  audio  font @@ -14,6 +14,14 @@ image  text  video  TYPES +nmtypes="`cat`" << TYPES +pdf, +spreadsheet ms-excel, +wordprocessing ms-word, +presentation ms-powerpoint, +drawing, +zip gzip, +TYPES  dlcsv() { curl -sS -C - -o "$2" "$1" || exit; } @@ -22,17 +30,21 @@ mkdir -p "$cachedir"  for mtype in $mtypes; do  	mtypefile="$cachedir/$mtype.csv"  	[ -e "$mtypefile" ] || dlcsv "$mtypesrc/$mtype.csv" "$mtypefile" -	#[ "$2" = "$type" ] && mimetype="`cut -d',' -f2 $typefile`" && break  done -interactiveopt() { # Usage: interactiveopt "options" "prompt" "maxopts" "col" -	unset opt # This won't be set if we choose to use recursion, so do it in a while loop instead +interactiveopt() { +	# Usage: interactiveopt "options" "prompt" "maxopts (if unset than equal to inf)" "col" +	# Purpose: give the user a numbered list of options. User can specify multiple choices. User can specify either the number or the name of the option. +	# Output: saved in variable "opt" +	unset opt # This won't be set if using recursion, do it in a while loop instead  	while [ -z $opt ] 2>/dev/null; do +		# Column option  		[ -n "$4" ] && [ "$4" = "col" ] \  			&& echo "$1" | nl -s': ' | column \  			|| echo "$1" | nl -s': ' -			read -p "$2" choices \ -				&& [ -n "$3" ] && ( choices="$(echo $choices | cut -d' ' -f1-$3)" || ( echo "Invalid entry" && unset choices ) ) +		# Parse user input +		read -p "$2" choices \ +			&& choices="$(echo $choices | cut -d' ' -f1-$3)"  		for choice in $choices; do  			case "$choice" in  				[0-9]*)	opt="$(echo "$1" | head -"$(echo $choice | tr -cd '[:digit:]')" | tail -1) $opt"	;; @@ -44,23 +56,25 @@ interactiveopt() { # Usage: interactiveopt "options" "prompt" "maxopts" "col"  # Choose mimetype: -mtypes="$mtypes\npdf\nspreadsheet ms-excel\nwordprocessing ms-word\npresentation ms-powerpoint\ndrawing\nzip gzip" -interactiveopt "$mtypes" "Choose Mimetype: " -mtype="$opt" +mtypes="$mtypes\n$(echo "$nmtypes" | cut -d',' -f1)" +interactiveopt "$mtypes" "Choose mimetype: " 1 +mtype="$(echo "$opt" | cut -d' ' -f1)"  echo "$mtype" +echo  # Choose subtype -#cut -d',' -f1 "$cachedir/application.csv" | grep drawing | nl -s': ' | column +mtypefile="$cachedir/$mtype.csv" +[ -e "$mtypefile" ] && interactiveopt "all\n$(cut -d',' -f1 "$mtypefile" | tail -n +2)" "Choose $mtype subtype: " "" col +echo  # Choose program -interactiveopt "$(ls /usr/share/applications | sed 's/\.desktop//')" "Choose program to open with: " col +interactiveopt "$(ls /usr/share/applications | sed 's/\.desktop//')" "Choose program to open with: " "" col  program="$opt"  echo "$program" +echo +# Xdg-mime commands  #echo "All $mtype Types\n$(cut -d',' -f1 "$cachedir/image.csv" | tail -n +2)"  #cut -d',' -f2 "$cachedir/image.csv" -#jcho "$types" | while read type; do -#done -  #[ -n "$mimetype" ] && xdg-mime default $application.desktop $mimetype  | 
