mirror of https://github.com/Chizi123/Dotfiles.git

Joel Grunbaum
2022-01-02 535d0dd5aba279960a175c85bbbaf36826413aba
Broke choice dialogue into own function and included for sudo
1 files modified
78 ■■■■■ changed files
INSTALL.sh 78 ●●●●● patch | view | raw | blame | history
INSTALL.sh
@@ -1,48 +1,58 @@
#!/bin/sh
install_conflict() {
    file="$1";
    loc="$2";
    if [ -n "$3" ]; then
        SUPERUSER="sudo"
    else
        SUPERUSER="";
    fi
    while true; do
        CHOICE="overwrite"
        if [ -e "$loc" ] && [ "$FORCE" = "0" ]; then
            echo "WARNING: \"$loc\" exists, (overwrite, change, nothing): "
            read CHOICE
        fi
        case "$CHOICE" in
            o|overwrite)
                dir=$(dirname "$loc")
                $SUPERUSER mkdir -p "$dir"
                $SUPERUSER ln -sf "$(pwd)/$file" "$loc"; break;;
            c|change)
                tmpfile=$(mktemp)
                echo "$loc" >> "$tmpfile"
                $EDITOR "$tmpfile"
                loc=$(cat "$tmpfile")
                rm "$tmpfile"
                unset tmpfile;;
            n|nothing)
                break;;
            *)
                echo "INVALID CHOICE \"$CHOICE\", (overwrite, change, nothing)"
                read CHOICE
        esac
    done
}
install_links() {
    . ./DICT
    if [ -n "$FILES" ]; then
    for i in $(seq 1 "$(echo "$FILES" | wc -w)"); do
        file=$(echo "$FILES" | cut -d' ' -f "$i")
        loc=$(echo "$LOCATIONS" | cut -d' ' -f "$i")
        while true; do
            CHOICE="overwrite"
            if [ -e "$loc" ] && [ "$FORCE" = "0" ]; then
                echo "WARNING: \"$loc\" exists, (overwrite, change, nothing): "
                read CHOICE
            fi
            case "$CHOICE" in
                o|overwrite)
                    dir=$(dirname "$loc")
                    mkdir -p "$dir"
                    ln -sf "$(pwd)/$file" "$loc"; break;;
                c|change)
                    tmpfile=$(mktemp)
                    echo "$loc" >> "$tmpfile"
                    $EDITOR "$tmpfile"
                    loc=$(cat "$tmpfile")
                    rm "$tmpfile"
                    unset tmpfile;;
                n|nothing)
                    break;;
                *)
                    echo "INVALID CHOICE \"$CHOICE\", (overwrite, change, nothing)"
                    read CHOICE
            esac
        done
        install_conflict "$file" "$loc"
    done
    fi
    if [ -n "$SUDO_FILES" ]; then
    for i in $(seq 1 "$(echo "$SUDO_FILES" | wc -w)"); do
        file=$(echo "$SUDO_FILES" | cut -d' ' -f "$i")
        loc=$(echo "$SUDO_LOCATIONS" | cut -d' ' -f "$i")
        dir=$(echo "$loc" | rev | cut -d'/' -f2- | rev)
        sudo mkdir -p "$dir"
        sudo ln -sf "$(pwd)/$file" "$loc"
    done
        for i in $(seq 1 "$(echo "$SUDO_FILES" | wc -w)"); do
            file=$(echo "$SUDO_FILES" | cut -d' ' -f "$i")
            loc=$(echo "$SUDO_LOCATIONS" | cut -d' ' -f "$i")
            install_conflict "$file" "$loc" 1
        done
    fi
    if type custom | grep -q "function" ; then
    if type custom 2>/dev/null | grep -q "function" ; then
        custom install
    fi
}
@@ -77,7 +87,6 @@
}
handle_package() {
    echo "$1"
    if [ -d "$1" ]; then
    unset DEPS
    eval "$(grep "DEPS=" "$1/DICT")"
@@ -88,6 +97,7 @@
            fi
        done
    fi
    echo "$1"
    echo "$1" >> "$PACKAGE_CACHE"
    (cd "$1" || exit; "$([ "$INSTALL" = "1" ] && echo install || echo remove)_links")
    else