dream.sh
This commit is contained in:
parent
73049cbde6
commit
bf57d47fed
3 changed files with 237 additions and 320 deletions
142
distros.sh
142
distros.sh
|
@ -73,6 +73,10 @@ echo_error() {
|
|||
echo "${BOLD}${RED}${UNDERLINE}ERROR:${NC}${BRIGHT_RED} $1 ${NC}" >&2
|
||||
}
|
||||
|
||||
echo-error() {
|
||||
echo "${BOLD}${RED}${UNDERLINE}ERROR:${NC}${BRIGHT_RED} $1 ${NC}" >&2
|
||||
}
|
||||
|
||||
# INFO:
|
||||
# ↓ should get set in the install script itself
|
||||
# ↓
|
||||
|
@ -107,84 +111,64 @@ echo_pkg() {
|
|||
}
|
||||
|
||||
echo_info() {
|
||||
echo "${BOLD}${BLUE}INFO:${NC}${BRIGHT_BLUE} $1${NC}"
|
||||
echo "${BOLD}${BLUE}INFO:${NC} $1${NC}"
|
||||
}
|
||||
|
||||
echo_info() {
|
||||
echo "${BOLD}${BLUE}INFO:${NC} $1${NC}"
|
||||
}
|
||||
|
||||
echo-warning() {
|
||||
echo "${BOLD}${YELLOW}WARNING:${NC} $1${NC}"
|
||||
}
|
||||
|
||||
echo_warning() {
|
||||
echo "${BOLD}${YELLOW}WARNING:${NC}${BRIGHT_YELLOW} $1${NC}"
|
||||
echo "${BOLD}${YELLOW}WARNING:${NC} $1${NC}"
|
||||
}
|
||||
|
||||
echo-note() {
|
||||
echo "${BOLD}${GREEN}NOTE:${NC} $1${NC}"
|
||||
}
|
||||
|
||||
echo_note() {
|
||||
echo "${BOLD}${GREEN}NOTE:${NC}${BRIGHT_GREEN} $1${NC}"
|
||||
echo "${BOLD}${GREEN}NOTE:${NC} $1${NC}"
|
||||
}
|
||||
|
||||
# ─< Check if the given command exists silently >─────────────────────────────────────────
|
||||
command_exists() {
|
||||
command -v "$@" >/dev/null 2>&1
|
||||
}
|
||||
command-exists() {
|
||||
command -v "$@" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
silentexec() {
|
||||
"$@" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
source_script() {
|
||||
local url="$1"
|
||||
local import="$(mktemp)"
|
||||
|
||||
# ─< if $1 is a local file, source this one instead >─────────────────────────────────────
|
||||
if [ -f "$url" ]; then
|
||||
source "$url"
|
||||
sleep 0.1
|
||||
return 0
|
||||
else
|
||||
# ─< if $1 is a url, grab it and source it, also deletes afterwards >─────────────────────
|
||||
if command_exists curl; then
|
||||
curl -fsSL $url -o $import
|
||||
elif command_exists wget; then
|
||||
wget -o $import $url
|
||||
else
|
||||
echo "curl/wget is required, but missing.."
|
||||
exit 69
|
||||
fi
|
||||
|
||||
source "$import"
|
||||
|
||||
echo "${BLUE}Sourcing external script:${NC} $url"
|
||||
sleep 0.1
|
||||
rm -f "$import"
|
||||
fi
|
||||
}
|
||||
|
||||
# just an alias for source_script
|
||||
source-script() {
|
||||
source_script "$1"
|
||||
}
|
||||
|
||||
run-silent() {
|
||||
[[ -z $silent ]] &&
|
||||
"$@" ||
|
||||
# else
|
||||
if $silent; then
|
||||
silentexec "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
# fi
|
||||
if [[ -z $silent ]] || ! $silent; then
|
||||
"$@"
|
||||
else
|
||||
silentexec "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# if given an array, it checks if the command is available, and if not - installs all packages in that array one by one
|
||||
checkAndInstall() {
|
||||
local pkg=$1
|
||||
# echo "DEBUG:: GOT ARRAY :: ${@}"
|
||||
# ─< if it's not a list, then just check and install the package.. >──────────────────────
|
||||
# INFO: if it's not a list, then just check and install the package..
|
||||
if [[ -z $2 ]]; then
|
||||
if ! command_exists "$1"; then
|
||||
if run-silent pkg-install "$1"; then
|
||||
echo_pkg deps "$1 - ${GREEN}installed"
|
||||
if ! command_exists "$pkg"; then
|
||||
echo_pkg deps "Installing $pkg"
|
||||
if run-silent pkg-install "$pkg"; then
|
||||
echo_pkg deps "Installed $pkg"
|
||||
else
|
||||
echo_pkg deps "$1 is already installed.."
|
||||
echo_pkg deps "$pkg is already installed.."
|
||||
fi
|
||||
else
|
||||
echo_pkg deps "skipping $1 - as it's ${RED}already installed.."
|
||||
echo_pkg deps "skipping $pkg - as it's ${RED}already installed.."
|
||||
fi
|
||||
else
|
||||
# ─< else go though the list of items and do the same >───────────────────────────────────
|
||||
|
@ -220,7 +204,6 @@ check_env() {
|
|||
_sudo=""
|
||||
fi
|
||||
|
||||
pikaCheckFile="$HOME/.cache/pika_script_detection"
|
||||
checkFileAge() {
|
||||
local file="$1"
|
||||
[[ ! -e "$file" ]] && return 2 # File doesn't exist
|
||||
|
@ -232,6 +215,8 @@ check_env() {
|
|||
fi
|
||||
}
|
||||
|
||||
pikaCheckFile="$HOME/.cache/pika_script_detection"
|
||||
|
||||
if [ -f "$pikaCheckFile" ]; then
|
||||
if checkFileAge $pikaCheckFile; then
|
||||
PIKA_INIT=true
|
||||
|
@ -478,6 +463,7 @@ get_packager() {
|
|||
dist_setup() {
|
||||
case "$distro" in
|
||||
debian)
|
||||
echo "${BOLD}Found ${RED}debian${NC}"
|
||||
_setup debian
|
||||
# Codename support
|
||||
if [ -n $VERSION_CODENAME ]; then
|
||||
|
@ -490,6 +476,7 @@ dist_setup() {
|
|||
fi
|
||||
;;
|
||||
ubuntu)
|
||||
echo "${BOLD}Found ${BRIGHT_YELLOW}ubuntu${NC}"
|
||||
_setup ubuntu
|
||||
# Codename support
|
||||
if [ -n $VERSION_CODENAME ]; then
|
||||
|
@ -502,12 +489,14 @@ dist_setup() {
|
|||
fi
|
||||
;;
|
||||
fedora)
|
||||
echo "${BOLD}Found ${BRIGHT_BLUE}fedora${NC}"
|
||||
_setup fedora
|
||||
# Add version-specific var like: fedora_40=true
|
||||
fedora_version="fedora_${VERSION_ID//./_}"
|
||||
eval "$fedora_version=true"
|
||||
;;
|
||||
arch)
|
||||
echo "${BOLD}Found ${BLUE}arch${NC}"
|
||||
_setup arch
|
||||
if command_exists yay || command_exists paru; then
|
||||
aur=true
|
||||
|
@ -515,16 +504,20 @@ dist_setup() {
|
|||
aur=false
|
||||
fi
|
||||
;;
|
||||
alpine | opensuse)
|
||||
alpine)
|
||||
echo "${BOLD}Found ${BLUE}alpine${NC}"
|
||||
_setup $distro
|
||||
;;
|
||||
opensuse)
|
||||
echo "${BOLD}Found ${GREEN}opensuse${NC}"
|
||||
_setup $distro
|
||||
;;
|
||||
# opensuse)
|
||||
# _setup opensuse
|
||||
# ;;
|
||||
esac
|
||||
}
|
||||
|
||||
update_package_list() {
|
||||
local USER="${USER:-$(whoami)}"
|
||||
|
||||
echo_info "Refreshing repository sources.."
|
||||
case "$distro" in
|
||||
ubuntu | debian) run-silent $_sudo apt-get update ;;
|
||||
|
@ -533,21 +526,31 @@ update_package_list() {
|
|||
if command_exists pacman; then
|
||||
if ! checkAUR; then
|
||||
local paruBuildDir="/opt/builds"
|
||||
local USER="$(whoami)"
|
||||
$_sudo mkdir -p "$paruBuildDir"
|
||||
# if ! command_exists paru; then
|
||||
|
||||
echo "${YELLOW}Installing paru as AUR helper...${NC}"
|
||||
run-silent $_sudo pacman -S --needed --noconfirm base-devel git
|
||||
cd "$paruBuildDir" && $_sudo git clone https://aur.archlinux.org/paru-bin.git paru
|
||||
$_sudo pacman -S --needed --noconfirm base-devel git
|
||||
|
||||
cd "$paruBuildDir" && echo "${YELLOW} Cloning paru from ${NC}https://aur.archlinux.org/paru-bin.git"
|
||||
$_sudo git clone https://aur.archlinux.org/paru-bin.git paru
|
||||
|
||||
$_sudo chown -R "$USER": "$paruBuildDir/paru"
|
||||
cd "$paruBuildDir/paru" && makepkg --noconfirm -si
|
||||
echo "${GREEN}Paru installed${NC}"
|
||||
# else
|
||||
# printf "%b\n" "${GREEN}Paru already installed${RC}"
|
||||
# fi
|
||||
cd "$paruBuildDir/paru"
|
||||
|
||||
echo "${GREEN}${BOLD}Installing paru"
|
||||
makepkg --noconfirm -si
|
||||
sleep 1
|
||||
|
||||
if command_exists paru; then
|
||||
echo "${GREEN}Paru installed${NC}"
|
||||
else
|
||||
echo "${RED}${BOLD}Error: Something went wrong when installing paru!"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 0.01
|
||||
|
||||
if command_exists paru; then
|
||||
run-silent paru -Sy
|
||||
elif command_exists yay; then
|
||||
|
@ -571,17 +574,16 @@ if check_env; then
|
|||
|
||||
# WHY:
|
||||
# ╭─────────────────────────────────────────────────────────────────────────╮
|
||||
# │ check if the script has run-silent at least once, so that the sources dont │
|
||||
# │ check if the script has run at least once, so that the sources dont │
|
||||
# │ have to get updated again.. │
|
||||
# ╰─────────────────────────────────────────────────────────────────────────╯
|
||||
if [[ -z "$PIKA_INIT" ]]; then
|
||||
echo_pkg "First time being imported.."
|
||||
echo_pkg "First time importing.."
|
||||
|
||||
if update_package_list; then
|
||||
touch "$pikaCheckFile"
|
||||
silentexec touch "$pikaCheckFile"
|
||||
fi
|
||||
else
|
||||
echo_pkg "Skipping repo refresh (PIKA_INIT is already set)"
|
||||
echo_pkg "Skipping repo refresh"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue