dotfiles/termscripts/posixfy.sh

31 lines
852 B
Bash

#!/bin/sh
[ -z $1 ] && exit 1
if [ "$#" -gt 1 ]; then
for i in "$@"
do
# echo "$i"
dash "$0" "$i"
done
else
if [ -d "$1" ]; then
dash "$0" "$1"/*
elif [ -f "$1" ]; then
echo "$1"
first="$(sed -E 's|^#!/bin/sh$|#!/usr/bin/env sh|g' "$1")"
second="$(echo "$first" | sed 's|mksh|dash|g')"
third="$(echo "$second" | sed 's|echo|printf "%b\\n"|g')"
echo "-----------------------------------------"
new="/tmp/posixfy$(date +%s)"
echo "$third" > "$new"
difference="$(diff -u "$1" "$new")"
[ -z "$difference" ] && exit 0 || echo "$difference"
dash $TSCRIPTS/yes-or-no.sh "Confirm?" && echo "$third" > "$1"
echo "-----------------------------------------"
else
echo "Unexpected error" 1>&2
exit 1
fi
fi