#!/usr/bin/env bash
# ==========================================================================
#              ____        _ _     _     _____           _
#             | __ ) _   _(_) | __| |   |_   _|__   ___ | |___
#             |  _ \| | | | | |/ _` |_____| |/ _ \ / _ \| / __|
#             | |_) | |_| | | | (_| |_____| | (_) | (_) | \__ \
#             |____/ \__,_|_|_|\__,_|     |_|\___/ \___/|_|___/
#
#                           --- Build-Tools ---
#                https://www.nntb.no/~dreibh/system-tools/
# ==========================================================================
#
# Packaging Scripts
# Copyright (C) 2017-2026 by Thomas Dreibholz
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Contact: thomas.dreibholz@gmail.com

# Bash options:
set -eu


# Usage:
# find . -type f -executable | xargs ~/src/td-build-tools/shebangfix


while [ $# -gt 0 ] ; do
   # echo "Checking $1 ..."
   if head -n1 "$1" | grep "/bin/bash" >/dev/null; then
      gawk -i inplace '
         BEGIN {
            in_header=0
         }
         NR==1 && /^#!\/bin\/bash/ {
            option=$2
            in_header=1
            print "#!/usr/bin/env bash"
         }
         NR>1 && /^[^#]/ || /^$/ {
            if(in_header==1) {
               if(option != "") {
                  print "\n# Bash options:\nset " option
               }
               in_header=0
            }
         }
         NR>1 {
            print $0
         }
      ' "$1"

   elif head -n1 "$1" | grep "^#\!" >/dev/null; then
      echo "Processing $1 ..."
      sed \
         -e "1s@#\!/usr/bin/python@#\!/usr/bin/env python@g" \
         -i "$1"
   fi

   shift
done
