#!/bin/bash
## File: ~/bin/myDos2Unix
## Author: Jörg Reinholz, www.fastix.org
## Licence: https://code.fastix.org/lizenz.php
## Version: 1.2.2  from 2016-10-22

if [ -z "${1}" ]; then
    echo "Bereinigt Dateien um carriage returns (\r)";
    echo "Usage: myDos2Unix DATEI [DATEI2] ...";
    exit 1;
fi

exitCode=0;

while (($#)); do
    if [ -f "${1}" ]; then
        if [ -w "${1}" ]; then
            info=$(file "${1}");
            isElf=$(echo ${info} | grep '^ELF' | wc -l);
            isText=$(echo ${info} | grep -i 'text' | wc -l);
            isCRLF=$(echo ${info} | grep -i 'with CRLF' | wc -l);
            if [ "${isElf}" = "0" ] && [ "${isText}" = "1" ]; then
                if [ "${isCRLF}" = "1" ]; then
                    echo -n "Bereinige Datei \"${1}\" ... ";
                    tmpfile=$(mktemp);
                    tr -d "\r" < "${1}" > ${tmpfile};
                    cat < ${tmpfile} > "${1}";
                    rm ${tmpfile};
                    echo "erledigt.";
                else
                    echo "Notiz: Die Datei \"${1}\" enthält keine carriage returns und wird übergangen.";
                    exitCode=0;
                fi
            else
                echo "Notiz: Die Datei \"${1}\" ist binär und wird übergangen.";
                exitCode=1;
            fi
        else
            echo "Notiz: Sie haben kein Schreibrecht an der Datei \"${1}\". Sie wird übergangen.";
            exitCode=1;
        fi
    else
        if [ -d "${1}" ]; then
            echo "Notiz: Das Verzeichnis \"${1}\" wird übergangen.";
            exitCode=1;
        else
             echo "Notiz: Die Datei \"${1}\" existiert nicht oder ist keine reguläre Datei. Die Datei \"${1}\" wird übergangen.";
             exitCode=1;
        fi
    fi
    shift;
done
exit ${exitCode};