From b636494fd7a97dfdfade2041841bd16bf14753fa Mon Sep 17 00:00:00 2001 From: emma Date: Mon, 20 Mar 2023 19:12:06 -0400 Subject: [PATCH] good practice changes, removed config file, and replaced dc(1) with bc(1) --- LICENSE => COPYING | 0 xdg-sanity | 86 ++++++++++++++++++++-------------------------- 2 files changed, 37 insertions(+), 49 deletions(-) rename LICENSE => COPYING (100%) diff --git a/LICENSE b/COPYING similarity index 100% rename from LICENSE rename to COPYING diff --git a/xdg-sanity b/xdg-sanity index f6eb1b2..bea029a 100755 --- a/xdg-sanity +++ b/xdg-sanity @@ -1,47 +1,45 @@ #!/bin/sh +# Copyright (c) 2022–2023 Emma Tebibyte +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. +# +# You should have received a copy of the GNU Affero General Public License along +# with this program. If not, see https://www.gnu.org/licenses/. + set -e argv0="$0" -# grabs configuration files -CONFIG="$XDG_CONFIG_HOME"/xdg-sanity.toml -if ! test -e "$CONFIG"; then - touch "$CONFIG" -fi - # check if usage is valid -if ! test -n "$1"; then +if test -z "$1"; then printf "Usage: %s [resource...]\n" "$argv0" 1>&2 exit 64 # sysexits(3) EX_USAGE fi -# check if we have curl(1) -if ! command -v curl >/dev/null 2>&1; then - printf "%s: Missing dependency: curl(1)\n" "$argv0" 1>&2 - exit 69 # sysexits(3) EX_UNAVAILABLE -fi - -# check if we have tomcat(1) -if ! command -v tomcat >/dev/null 2>&1; then - printf "%s: Missing dependency: tomcat(1)\n" "$argv0" 1>&2 - exit 69 # sysexits(3) EX_UNAVAILABLE -fi - -# set the XDG_COMMAND -test -n "$XDG_COMMAND" || XDG_COMMAND="$(tomcat tools.xdg "$CONFIG")" -! command -v handlr >/dev/null 2>&1 && ! command -v xdg-open >/dev/null 2>&1 \ - && XDG_COMMAND=false \ - || true +for dep in \ + curl \ + handlr \ + tomcat +do + if ! command -v "$dep" >/dev/null 2>&1; then + printf "%s: Missing dependency: %s(1)\n" "$argv0" "$dep" 1>&2 + exit 69 # sysexits(3) EX_UNAVAILABLE + fi +done # check if we have a BROWSER -test -n "$BROWSER" || BROWSER="$(tomcat tools.browser "$CONFIG")" -if ! test -n "$BROWSER"; then - printf "\ -%s: \$BROWSER not filled. - Please place the path to your preferred browser's executable in - $XDG_CONFIG_HOME/xdg-sanity.toml -" "$argv0" 1>&2 +if test -z "$BROWSER"; then + printf "%s: \$BROWSER not filled.\n" "$argv0" 1>&2 exit 71 # sysexits(3) EX_OSERR fi @@ -51,12 +49,12 @@ while test -n "$1"; do # use curl(1) to write out the request header's content_type, # strip everything after the first semicolon, # chop off any weird whitespace remnants - MIME="$(curl -Ls -o /dev/null -w '%{content_type}' "$1" | sed 's/\;.*//' |\ - xargs echo)" + MIME="$(curl -Ls -o /dev/null -w '%{content_type}' "$1" | sed 's/\;.*//' \ + | xargs echo)" # get the pattern for the extensions to MATCH - MATCH="$(printf "%s\n" "$URL" | sed -ne 's/^h.\+\/\///p' |\ - sed -e 's/\/.*\+//g')" + MATCH="$(printf "%s\n" "$URL" | sed -ne 's/^h.\+\/\///p' \ + | sed -e 's/\/.*\+//g')" # run through MIME extensions for file in \ @@ -70,7 +68,7 @@ while test -n "$1"; do if [ "$MATCH" = "$(tomcat replace.urls["$i"] "$file")" ]; then MIME="$(tomcat with.mime "$file")" fi - i="$(dc -e "$i 1 - p")" + i="$(printf "%s-1\n" "$i" | bc)" done fi done @@ -85,9 +83,9 @@ while test -n "$1"; do i="$(tomcat replace.urls "$file" | sed 's/ /\n/g' | wc -l)" while ! [ "$i" = 0 ]; do if [ "$MATCH" = "$(tomcat replace.urls["$i"] "$file")" ]; then - URL="$(tomcat with.url "$file")" + URL="$(tomcat with.url "$file")" fi - i="$(dc -e "$i 1 - p")" + i="$(printf "%s-1\n" "$i" | bc)" done fi done @@ -96,17 +94,7 @@ while test -n "$1"; do if [ "$MIME" = "text/html" ]; then "$BROWSER" "$URL" else - case "$(command -v $XDG_COMMAND)" in - */handlr ) - handlr launch "$MIME" -- "$URL" - ;; - */xdg-open ) - "$(xdg-mime query default "$MIME")" "$URL" - ;; - false ) - exit 69 # sysexits(3) EX_UNAVAILABLE - ;; - esac + handlr launch "$MIME" -- "$URL" fi shift done