From 3be9952b19b4b8e1d0fe84980f855616b8db38ee Mon Sep 17 00:00:00 2001 From: Randy Jordan Date: Fri, 15 Nov 2024 12:09:49 -0600 Subject: [PATCH] New install script --- aptpkg.sh | 87 ++++++++++++++++++++++++++++++++++++++++++++++++ bare_template.sh | 39 ++++++++++++++++++++++ pkg.sh | 56 +++++++++++++++++++++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 aptpkg.sh create mode 100644 bare_template.sh create mode 100644 pkg.sh diff --git a/aptpkg.sh b/aptpkg.sh new file mode 100644 index 0000000..aaebd66 --- /dev/null +++ b/aptpkg.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail +trap cleanup SIGINT SIGTERM ERR EXIT + +script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) + +usage() { + cat << EOF # remove the space between << and EOF, this is due to web plugin issue +Usage: $(basename "${BASH_SOURCE[0]}") [-h] [-v] [-f] -p param_value arg1 [arg2...] + +Script description here. + +Available options: + +-h, --help Print this help and exit +-v, --verbose Print script debug info +-f, --flag Some flag description +-p, --param Some param description +EOF + exit +} + +cleanup() { + trap - SIGINT SIGTERM ERR EXIT + # script cleanup here +} + +setup_colors() { + if [[ -t 2 ]] && [[ -z "${NO_COLOR-}" ]] && [[ "${TERM-}" != "dumb" ]]; then + NOFORMAT='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' ORANGE='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' YELLOW='\033[1;33m' + else + NOFORMAT='' RED='' GREEN='' ORANGE='' BLUE='' PURPLE='' CYAN='' YELLOW='' + fi +} + +msg() { + echo >&2 -e "${1-}" +} + +die() { + local msg=$1 + local code=${2-1} # default exit status 1 + msg "$msg" + exit "$code" +} + +parse_params() { + # default values of variables set from params + flag=0 + param='' + + while :; do + case "${1-}" in + -h | --help) usage ;; + -v | --verbose) set -x ;; + --no-color) NO_COLOR=1 ;; + -f | --flag) flag=1 ;; # example flag + -p | --param) # example named parameter + param="${2-}" + shift + ;; + -?*) die "Unknown option: $1" ;; + *) break ;; + esac + shift + done + + args=("$@") + + # check required params and arguments + [[ -z "${param-}" ]] && die "Missing required parameter: param" + [[ ${#args[@]} -eq 0 ]] && die "Missing script arguments" + + return 0 +} + +parse_params "$@" +setup_colors + +# script logic here + +msg "${RED}Read parameters:${NOFORMAT}" +msg "- flag: ${flag}" +msg "- param: ${param}" +msg "- arguments: ${args[*]-}" + diff --git a/bare_template.sh b/bare_template.sh new file mode 100644 index 0000000..3c2e6de --- /dev/null +++ b/bare_template.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail +trap cleanup SIGINT SIGTERM ERR EXIT + +script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) + +cleanup() { + trap - SIGINT SIGTERM ERR EXIT + # script cleanup here +} + +setup_colors() { + if [[ -t 2 ]] && [[ -z "${NO_COLOR-}" ]] && [[ "${TERM-}" != "dumb" ]]; then + NOFORMAT='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' ORANGE='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' YELLOW='\033[1;33m' + else + NOFORMAT='' RED='' GREEN='' ORANGE='' BLUE='' PURPLE='' CYAN='' YELLOW='' + fi +} + +msg() { + echo >&2 -e "${1-}" +} + +die() { + local msg=$1 + local code=${2-1} # default exit status 1 + msg "$msg" + exit "$code" +} + +setup_colors + +# script logic here +msg "${RED}Executing logic:${NOFORMAT}" + + + + diff --git a/pkg.sh b/pkg.sh new file mode 100644 index 0000000..f818823 --- /dev/null +++ b/pkg.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail +trap cleanup SIGINT SIGTERM ERR EXIT + +script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) + +cleanup() { + trap - SIGINT SIGTERM ERR EXIT + # script cleanup here +} + +setup_colors() { + if [[ -t 2 ]] && [[ -z "${NO_COLOR-}" ]] && [[ "${TERM-}" != "dumb" ]]; then + NOFORMAT='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' ORANGE='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' YELLOW='\033[1;33m' + else + NOFORMAT='' RED='' GREEN='' ORANGE='' BLUE='' PURPLE='' CYAN='' YELLOW='' + fi +} + +msg() { + echo >&2 -e "${1-}" +} + +die() { + local msg=$1 + local code=${2-1} # default exit status 1 + msg "$msg" + exit "$code" +} + +setup_colors + +sudo -n true +test $? -eq 0 || exit 1 die "You should have sudo privilege to run this script" + +msg "${GREEN}\n\nInstalling pre-requisites${NOFORMAT}...\n" +# Install required packages +while read -r p; do + msg "${BLUE}Attempting to install "$p" ${NOFORMAT}..." + sudo apt-get install -y "$p" + msg "\n" +done < <(cat << EOF +curl +wget +vim-gtk3 +git +tmux +zsh +universal-ctags +build-essential +coreutils +EOF +) + +