From 2537106be9acfd7fd6728be5739b2b898da21b46 Mon Sep 17 00:00:00 2001 From: inigoortega Date: Thu, 15 Aug 2019 00:39:18 +0200 Subject: [PATCH] Clean POSIX checking script + POSIXed scripts --- scripts/dmenu-mpd.sh | 8 ++++---- scripts/dmenu-pwsafe.sh | 2 +- scripts/dmenu-tmux.sh | 4 ++-- scripts/dmenu-udevil.sh | 2 +- termscripts/posix-check.sh | 26 ++++++++++++++++++++++++++ 5 files changed, 34 insertions(+), 8 deletions(-) create mode 100755 termscripts/posix-check.sh diff --git a/scripts/dmenu-mpd.sh b/scripts/dmenu-mpd.sh index fade604..fbd8003 100755 --- a/scripts/dmenu-mpd.sh +++ b/scripts/dmenu-mpd.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh DMENU=${DMENU:-dmenu} @@ -9,15 +9,15 @@ cmd_list="play stop next prev toggle add volume seek repeat single consume rando mpc_add() { file="$(mpc listall | ${DMENU} -l 15 -p "$prompt_add")" - [[ -z $file ]] && exit 1 + [ -z $file ] && exit 1 mpc add "$file" mpc play } cmd="$(echo $cmd_list | sed 's/ /\n/g' | ${DMENU} -p "$prompt")" -[[ -z $cmd ]] && exit 1 +[ -z $cmd ] && exit 1 -if [[ $cmd = add ]]; then +if [ $cmd = add ]; then mpc_add else mpc $cmd diff --git a/scripts/dmenu-pwsafe.sh b/scripts/dmenu-pwsafe.sh index 3078187..f277ea8 100755 --- a/scripts/dmenu-pwsafe.sh +++ b/scripts/dmenu-pwsafe.sh @@ -10,6 +10,6 @@ PROMPT="pwsafe $@" item=$(eval ${DMENU} -p \""$PROMPT\"" < "$PWLIST") -[[ -z $item ]] && exit 1 +[ -z $item ] && exit 1 ${TERMCMD} -name pass -e pwsafe $@ "$item" -- diff --git a/scripts/dmenu-tmux.sh b/scripts/dmenu-tmux.sh index b35661d..817e9f1 100755 --- a/scripts/dmenu-tmux.sh +++ b/scripts/dmenu-tmux.sh @@ -2,7 +2,7 @@ DMENU=${DMENU:-dmenu} -if [[ -f $HOME/.tmux/attach.list ]]; then +if [ -f $HOME/.tmux/attach.list ]; then . $HOME/.tmux/attach.list fi @@ -18,6 +18,6 @@ spawn_local() { target=$(echo $tmux_pre $tmux_run | sed 's/ /\n/g' | sort -u | eval ${DMENU} -p "$prompt") -if [[ -n $target ]]; then +if [ -n $target ]; then spawn_local $target fi diff --git a/scripts/dmenu-udevil.sh b/scripts/dmenu-udevil.sh index 0ed345b..1791d66 100755 --- a/scripts/dmenu-udevil.sh +++ b/scripts/dmenu-udevil.sh @@ -57,7 +57,7 @@ dmenu_mnt() { 0) urgency="normal";; *) urgency="critical";; esac - notify-send -u $urgency "$(<$TMP)" + notify-send -u $urgency "$(cat $TMP)" else cat "$TMP" fi diff --git a/termscripts/posix-check.sh b/termscripts/posix-check.sh new file mode 100755 index 0000000..3814045 --- /dev/null +++ b/termscripts/posix-check.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +output="/tmp/posix-check-$(date +%s)" +checkbashisms -f $SCRIPTS/*.sh $TSCRIPTS/*.sh > $output 2>&1 + +errorline () { + [ -n "$(echo "$1" | grep '(unsafe echo with backslash)')" ] && echo "1" && \ + return + [ -n "$(echo "$1" | grep '($"foo" should be eval_gettext "foo")')" ] && \ + echo "1" && return + [ -n "$(echo "$1" | grep '(\[^\] should be \[!\])')" ] && echo "1" && return + [ -n "$(echo "$1" | grep -E "bashism in ($SCRIPTS|$TSCRIPTS)/.*\\.sh")" ] && echo "2" && return + echo "0" +} + +bashism="0" +while read -r line +do + # echo "$(errorline "$line")" + case "$(errorline "$line")" in + 0) ;; + 1) bashism="0" ;; + 2) bashism="1" ;; + esac + [ "$bashism" = "1" ] && echo "$line" +done < $output