diff --git a/install.sh b/install.sh index 5e01566..5030e3a 100755 --- a/install.sh +++ b/install.sh @@ -1,29 +1,28 @@ #!/usr/bin/env bash -set -e trap "printf \"\nOk, quitting beacuse you entered an exit signal. (SIGINT).\n\"; exit 1" SIGINT trap "printf \"\nOh noo!! Some application just killed the script! (SIGTERM)\"; exit 2" SIGTERM -BIN_HOME=`[[ ! "$BIN_HOME" ]] && echo -n "$BIN_HOME" || echo -n "$HOME/.local/bin"` -XDG_DATA_HOME=`[[ ! "$XDG_DATA_HOME" ]] && echo -n "$XDG_DATA_HOME" || echo -n "$HOME/.local/share"` -XDG_CACHE_HOME=`[[ ! "$XDG_CACHE_HOME" ]] && echo -n $XDG_CACHE_HOME || echo -N $HOME/.cache` -XDG_CONFIG_HOME=`[[ ! "$XDG_CONFIG_HOME" ]] && echo -n "$XDG_CONFIG_HOME" || echo -n "$HOME/.config"` +BIN_HOME=`[[ -z "$BIN_HOME" ]] && echo -n "$HOME/.local/bin" || echo -n "$BIN_HOME"` +XDG_DATA_HOME=`[[ -z "$XDG_DATA_HOME" ]] && echo -n "$HOME/.local/share" || echo -n "$XDG_DATA_HOME"` +XDG_CACHE_HOME=`[[ -z "$XDG_CACHE_HOME" ]] && echo -n $HOME/.cache || echo -n $XDG_CACHE_HOME` +XDG_CONFIG_HOME=`[[ -z "$XDG_CONFIG_HOME" ]] && echo -n "$HOME/.config" || echo -n "$XDG_CONFIG_HOME"` + +skip_prompts=`[[ "$@" =~ -y ]] && echo -n true` +is_standalone=`(git remote -v > /dev/null 2>&1) || echo -n true` -skip_prompts=`[[ "$@" =~ \-y ]] && echo -n true` -is_standalone=`"$(git remote -v > /dev/null)" && remote=\`git remote -v | head -n 1 \ - | awk '{print $2}' | sed 's/.git$//g'\` echo -n $remote` temp_dir="$XDG_CACHE_HOME/colorshell-installer" -repo_directory=`[[ $is_standalone ]] && echo -n "$temp_dir/repo" || echo -n "."` +repo_directory=`"$is_standalone" && echo -n "$temp_dir/repo" || echo -n "."` # source utils script before installation -if "$is_standalone"; then +if [[ "$is_standalone" ]]; then mkdir -p $temp_dir # testing only, change to commented value before merging (hope I don't forget lol) default_branch="gtk4-ags3" # `curl -s https://api.github.com/repos/retrozinndev/colorshell | jq -r .default_branch` # get utils script - curl -s https://raw.githubusercontent.com/retrozinndev/colorshell/refs/heads/$default_branch/utils.sh > $temp_dir/utils.sh + curl -s https://raw.githubusercontent.com/retrozinndev/colorshell/refs/heads/$default_branch/scripts/utils.sh > $temp_dir/utils.sh source $temp_dir/utils.sh else source ./scripts/utils.sh @@ -36,7 +35,7 @@ fi # makes bash force-load the script into memory to avoid issues when # switching source to a tag -{ + Print_header echo -e "Colorshell is a project made by retrozinndev. Source: https://github.com/retrozinndev/colorshell\n" @@ -47,23 +46,22 @@ echo "Welcome to the colorshell installation script!" # Warn user of possible issues Send_log warn "!! By running this script, you assume total responsability for any issues that may occur with your filesystem" -[[ ! $skip_prompts ]] && \ +if [[ -z "$skip_prompts" ]]; then Ask "Do you want to start the shell installation?" +fi -if $is_standalone; then +if [[ "$is_standalone" ]]; then Send_log "The installer noticed that you're calling the installation remotely" rm -rf $repo_directory 2> /dev/null Send_log "Cloning repository in \`$repo_directory\`..." git clone https://github.com/retrozinndev/colorshell.git "$repo_directory" -else - Send_log "The installer detected that you're running the script from a local clone" fi -if "$skip_prompts" || "$answer" == "y"; then +if [[ "$answer" == "y" ]] || [[ "$skip_prompts" ]]; then Ask "Nice! Do you want to use the stable version instead of the unstable(latest commit)?" - if ! "$skip_prompts" && "$answer" == "y"; then + if [[ ! "$skip_prompts" ]] && [[ "$answer" == "y" ]]; then Send_log "fetching latest release from colorshell repository" latest_tag=`curl -s "$repo_api_url/releases" | jq -r '. | select(.[].prerelease == false) | .[0].tag_name'` @@ -79,10 +77,9 @@ if "$skip_prompts" || "$answer" == "y"; then dest=$XDG_CONFIG_HOME/$dir echo "-> Installing $dir in $dest" - mkdir -p "$dest" # create parents + mkdir -p `dirname "$dest"` # create parents if [[ -f "$repo_directory/$dir" ]]; then - rm -rf "$dest" # delete unused directory cp -f $repo_directory/$dir "$dest" # copy actual file else cp -rf $repo_directory/$dir/* "$dest" # force-copy content @@ -103,7 +100,7 @@ if "$skip_prompts" || "$answer" == "y"; then Send_log "Cleaning" pnpm clean - if ! "$skip_prompts"; then + if [[ ! "$skip_prompts" ]]; then echo "Colorshell is installed! :D" sleep .8 echo "If you have issues, please report it!" @@ -121,4 +118,3 @@ fi printf "Ok, doing as you said! Bye bye!\n" exit 0 -}