Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sağ #13

Open
Yilmazcan123 opened this issue May 7, 2024 · 0 comments
Open

Sağ #13

Yilmazcan123 opened this issue May 7, 2024 · 0 comments

Comments

@Yilmazcan123
Copy link

#!/usr/bin/env sh

printf '%b' "\033c"
printf '%s\n' '#'
printf '%s\n' '# palera1n install script'
printf '%s\n' '#'
printf '%s\n' '# ======== Made by ======='
printf '%s\n' '# Samara, Staturnz'
printf '%s\n' '# =========================='
printf '%s\n' ''

RED='\033[0;31m'
YELLOW='\033[0;33m'
DARK_GRAY='\033[90m'
LIGHT_CYAN='\033[0;96m'
DARK_CYAN='\033[0;36m'
NO_COLOR='\033[0m'
BOLD='\033[1m'

=========

Logging

=========

error() {
printf '%b\n' " - [${DARK_GRAY}$(date +'%m/%d/%y %H:%M:%S')${NO_COLOR}] ${RED}${BOLD}${NO_COLOR}: ${RED}$1${NO_COLOR}"
}

info() {
printf '%b\n' " - [${DARK_GRAY}$(date +'%m/%d/%y %H:%M:%S')${NO_COLOR}] ${DARK_CYAN}${BOLD}${NO_COLOR}: ${DARK_CYAN}$1${NO_COLOR}"

}

warning() {
printf '%b\n' " - [${DARK_GRAY}$(date +'%m/%d/%y %H:%M:%S')${NO_COLOR}] ${YELLOW}${BOLD}${NO_COLOR}: ${YELLOW}$1${NO_COLOR}"
}

=========

Check if id is 0

=========

[ "$(id -u)" -ne 0 ] && {
warning "In order to use this script, run with root or use sudo."
exit 1
}

=========

Variables

=========

os=$(uname)
os_name="$os"
install_path="/usr/local/bin/palera1n"

download() {
status=$(curl --write-out '%{http_code}' -sLo $install_path "$1")

if [ "$status" -ne 200 ]; then
    error "palera1n failed to download. Please check your internet connection and try again. (Status: $status)"
    exit 1
fi

}

remove_palera1n() {
if [ -e "${install_path}" ]; then
rm ${install_path}
info "palera1n was successfully removed from ${install_path}."
else
error "palera1n is not installed at ${install_path}."
exit 1
fi
}

print_help() {
cat << EOF
Usage: $0 [-hlnr]

Options:
-h, --help Print this help
-r, --remove Uninstall palera1n
EOF
}

=========

Dependancies

=========

case "$os" in
Linux)
if ! command -v curl >/dev/null 2>&1; then
error "If you want to use this script, please install curl."
exit 1
fi
;;
esac

=========

OS and Architecture

=========

case "$os" in
Linux)
arch_check=$(uname -m)
os_name="Linux"
;;
Darwin)
if [ "$(uname -r | cut -d. -f1)" -gt "15" ]; then
os_name="macOS"
elif [ "$(uname -m | head -c2)" = "iP" ]; then
error "palera1n install script is not meant to used on iOS devices. Please use on a PC."
exit 1
else
os_name="Mac OS X"
fi
arch_check=$(uname -m)
;;
*)
error "Unknown or unsupported OS ($os)."
exit 1
;;
esac

[ "$os" = "Linux" ] && {
grep -qi Microsoft /proc/version > /dev/null 2>&1 && {
error "palera1n is not supported on WSL. Please use another supported platform."
error "Windows not really using for manipulating OSX images, compiled in mingw tool for this working unstable and incorrectly."
exit 1
}
}

case "$arch_check" in
x86_64* | amd64)
arch=x86_64
;;
i?86 | x86*)
arch=x86
;;
aarch64* | arm64*)
arch=arm64
;;
arm*)
arch=armel
;;
*)
error "Unknown or unsupported architecture ($arch_check)."
exit 1
;;
esac

=========

Args

=========

case "$1" in
"" ) ;;
"-r" | "--remove" | "--help" | "-h" ) ;;
* )
error "Invalid option: "$1""
exit 1
;;
esac

case "$1" in
"--remove" | "-r")
remove_palera1n
exit 0
;;
"--help" | "-h")
print_help
exit 1
;;
)
download_version=$(curl -s https://api.github.com/repos/palera1n/palera1n/releases | grep -m 1 -o '"tag_name": "[^"]
' | sed 's/"tag_name": "//')
info "Using release tag ${download_version}."
;;
esac

info "Found OS type ($os_name $arch)."

=========

Run

=========

info "Fetching palera1n (${prefix}${download_version}) build for ($os_name $arch)."
mkdir -p /usr/local/bin
rm /usr/local/bin/palera1n > /dev/null 2>&1

case "$os" in
Linux)
download "https://github.com/palera1n/palera1n/releases/download/${download_version}/palera1n-linux-${arch}"
;;
Darwin)
download "https://github.com/palera1n/palera1n/releases/download/${download_version}/palera1n-macos-${arch}"
;;
esac

if [ -f "$install_path" ]; then
chmod +x $install_path

if ! palera1n --version  > /dev/null 2>&1;
then
    error "palera1n installation is corrupted. Please check your internet connection and try again."
    exit 1
fi

info "palera1n is now installed at ${install_path}."

else
error "palera1n failed to install. Please check your internet connection and try again."
exit 1
fi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant