diff --git a/Makefile b/Makefile index c998e07..5db3532 100644 --- a/Makefile +++ b/Makefile @@ -10,11 +10,11 @@ build: clean clean: @bin/scripts/clean.sh $(BINARY_PATH) $(COMPLETION_SCRIPT) +uninstall: + @bin/scripts/uninstall.sh + install: @bin/scripts/install.sh install-global: @bin/scripts/install-global.sh - -uninstall: - @bin/scripts/uninstall.sh diff --git a/bin/scripts/install-global.sh b/bin/scripts/install-global.sh deleted file mode 100755 index bf82c69..0000000 --- a/bin/scripts/install-global.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -source bin/helpers/func.sh - -# Remove any existing kcm installation -if [ -f "/usr/local/bin/kcm" ]; then - printfe "%s\n" "yellow" "Removing existing kcm installation..." - rm /usr/local/bin/kcm -fi - -if [ -f "/usr/share/bash-completion/completions/kcm" ]; then - printfe "%s\n" "yellow" "Removing existing kcm bash completion..." - rm /usr/share/bash-completion/completions/kcm -fi - -# Copy binary files to /usr/local/bin -printfe "%s\n" "cyan" "Installing kcm..." -cp $(pwd)/bin/kcm /usr/local/bin/kcm -cp $(pwd)/bin/kcm-completion.bash /usr/share/bash-completion/completions/kcm - -# In case /etc/kcm/config.yaml does not exist, create it -if [ ! -f "/etc/kcm/config.local.yaml" ]; then - printfe "%s\n" "cyan" "Creating default configuration file..." - mkdir -p /etc/kcm - cp $(pwd)/config/config.local.example.yaml /etc/kcm/config.local.yaml -fi -printfe "%s\n" "green" "Installation complete." diff --git a/bin/scripts/install-local.sh b/bin/scripts/install-local.sh new file mode 100755 index 0000000..084d097 --- /dev/null +++ b/bin/scripts/install-local.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +source bin/helpers/func.sh + +# Create any missing directories/files +touch ~/.bash_completion +mkdir -p $HOME/.local/bin/ + +# Symbolically link binaries +ln -sf $(pwd)/bin/kcm $HOME/.local/bin/kcm +ln -sf $(pwd)/bin/kcm-completion.bash $HOME/.local/bin/kcm-completion.bash + +# Add completion to bash_completion for kcm +sed -i '/kcm/d' ~/.bash_completion +echo "source $HOME/.local/bin/kcm-completion.bash" >> ~/.bash_completion + +printfe "%s\n" "green" "Local installation complete. Binary has been installed to $HOME/.local/bin/kcm" +source ~/.bash_completion diff --git a/bin/scripts/install.sh b/bin/scripts/install.sh index d625ee7..bb8a389 100755 --- a/bin/scripts/install.sh +++ b/bin/scripts/install.sh @@ -1,16 +1,27 @@ #!/usr/bin/env bash -# Create any missing directories/files -touch ~/.bash_completion -mkdir -p $HOME/.local/bin/ +source bin/helpers/func.sh -# Symbolically link binaries -ln -sf $(pwd)/bin/kcm $HOME/.local/bin/kcm -ln -sf $(pwd)/bin/kcm-completion.bash $HOME/.local/bin/kcm-completion.bash +# Test for root privileges +if [ "$EUID" -ne 0 ]; then + printfe "%s\n" "red" "Please run as root" + exit 1 +fi -# Add completion to bash_completion for kcm -sed -i '/kcm/d' ~/.bash_completion -echo "source $HOME/.local/bin/kcm-completion.bash" >> ~/.bash_completion +# Remove any existing kcm installation +if [ -f "/usr/local/bin/kcm" ]; then + printfe "%s\n" "yellow" "Removing existing kcm installation..." + rm /usr/local/bin/kcm +fi -echo "Installation complete." -source ~/.bash_completion +if [ -f "/usr/share/bash-completion/completions/kcm" ]; then + printfe "%s\n" "yellow" "Removing existing kcm bash completion..." + rm /usr/share/bash-completion/completions/kcm +fi + +# Copy binary files to /usr/local/bin +printfe "%s\n" "cyan" "Installing kcm..." +cp $(pwd)/bin/kcm /usr/local/bin/kcm +cp $(pwd)/bin/kcm-completion.bash /usr/share/bash-completion/completions/kcm + +printfe "%s\n" "green" "Installation complete." diff --git a/bin/scripts/uninstall.sh b/bin/scripts/uninstall.sh index 00c194f..011be28 100755 --- a/bin/scripts/uninstall.sh +++ b/bin/scripts/uninstall.sh @@ -1,29 +1,53 @@ -#!/bin/usr/env bash +#!/usr/bin/env bash + +source bin/helpers/func.sh if [ -f $HOME/.local/bin/kcm ]; then - echo "Removing kcm from $HOME/.local/bin" + printfe "%s\n" "cyan" "Removing kcm from $HOME/.local/bin" rm $HOME/.local/bin/kcm rm $HOME/.local/bin/T fi if [ -f $HOME/.local/bin/kcm-completion.bash ]; then - echo "Removing kcm-completion.bash from $HOME/.local/bin" + printfe "%s\n" "cyan" "Removing kcm-completion.bash from $HOME/.local/bin" rm $HOME/.local/bin/kcm-completion.bash fi if [ -f $HOME/.local/bin/php ]; then - echo "Removing php from $HOME/.local/bin" + printfe "%s\n" "cyan" "Removing php from $HOME/.local/bin" rm $HOME/.local/bin/php fi if [ -f $HOME/.local/bin/composer ]; then - echo "Removing composer from $HOME/.local/bin" + printfe "%s\n" "cyan" "Removing composer from $HOME/.local/bin" rm $HOME/.local/bin/composer fi if [ -f $HOME/.local/bin/phpstan ]; then - echo "Removing phpstan from $HOME/.local/bin" + printfe "%s\n" "cyan" "Removing phpstan from $HOME/.local/bin" rm $HOME/.local/bin/phpstan fi -echo "Uninstall complete." \ No newline at end of file +if [ -f /usr/share/bash-completion/completions/kcm ]; then + # Check root privileges + if [ "$EUID" -ne 0 ]; then + printfe "%s\n" "red" "Please run as root" + exit 1 + fi + + printfe "%s\n" "cyan" "Removing kcm bash completion from /usr/share/bash-completion/completions" + rm /usr/share/bash-completion/completions/kcm +fi + +if [ -f /usr/local/bin/kcm ]; then + # Check root privileges + if [ "$EUID" -ne 0 ]; then + printfe "%s\n" "red" "Please run as root" + exit 1 + fi + + printfe "%s\n" "cyan" "Removing kcm from /usr/local/bin" + rm /usr/local/bin/kcm +fi + +printfe "%s\n" "green" "Uninstall complete."