Rework msg_functions for tool.func Pt. 3
This commit is contained in:
parent
fd1c8c5368
commit
89af776d8f
@ -941,8 +941,8 @@ function setup_local_ip_helper() {
|
||||
|
||||
# Install networkd-dispatcher if not present
|
||||
if ! dpkg -s networkd-dispatcher >/dev/null 2>&1; then
|
||||
$STD apt-get update -qq
|
||||
$STD apt-get install -yq networkd-dispatcher
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y networkd-dispatcher
|
||||
fi
|
||||
|
||||
# Write update_local_ip.sh
|
||||
@ -999,8 +999,6 @@ EOF
|
||||
|
||||
chmod +x "$DISPATCHER_SCRIPT"
|
||||
systemctl enable -q --now networkd-dispatcher.service
|
||||
|
||||
$STD msg_ok "LOCAL_IP helper installed using networkd-dispatcher"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@ -1070,7 +1068,6 @@ function download_with_progress() {
|
||||
content_length=$(curl -fsSLI "$url" | awk '/Content-Length/ {print $2}' | tr -d '\r' || true)
|
||||
|
||||
if [[ -z "$content_length" ]]; then
|
||||
#msg_warn "Content-Length not available, falling back to plain download"
|
||||
if ! curl -fL# -o "$output" "$url"; then
|
||||
msg_error "Download failed"
|
||||
return 1
|
||||
@ -1092,7 +1089,6 @@ function download_with_progress() {
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
function setup_uv() {
|
||||
$STD msg_info "Checking uv installation..."
|
||||
local UV_BIN="/usr/local/bin/uv"
|
||||
local TMP_DIR
|
||||
TMP_DIR=$(mktemp -d)
|
||||
@ -1128,15 +1124,14 @@ function setup_uv() {
|
||||
local INSTALLED_VERSION
|
||||
INSTALLED_VERSION=$($UV_BIN -V | awk '{print $2}')
|
||||
if [[ "$INSTALLED_VERSION" == "$LATEST_VERSION" ]]; then
|
||||
$STD msg_ok "uv is already at the latest version ($INSTALLED_VERSION)"
|
||||
rm -rf "$TMP_DIR"
|
||||
[[ ":$PATH:" != *":/usr/local/bin:"* ]] && export PATH="/usr/local/bin:$PATH"
|
||||
return 0
|
||||
else
|
||||
$STD msg_info "Updating uv from $INSTALLED_VERSION to $LATEST_VERSION"
|
||||
msg_info "Updating uv from $INSTALLED_VERSION to $LATEST_VERSION"
|
||||
fi
|
||||
else
|
||||
$STD msg_info "Installing uv $LATEST_VERSION"
|
||||
msg_info "Setup uv $LATEST_VERSION"
|
||||
fi
|
||||
|
||||
# Download and install manually
|
||||
@ -1161,12 +1156,10 @@ function setup_uv() {
|
||||
|
||||
rm -rf "$TMP_DIR"
|
||||
ensure_usr_local_bin_persist
|
||||
msg_ok "uv $LATEST_VERSION installed"
|
||||
msg_ok "Setup uv $LATEST_VERSION"
|
||||
|
||||
# Optional: install specific Python version
|
||||
if [[ -n "${PYTHON_VERSION:-}" ]]; then
|
||||
$STD msg_info "Ensuring Python $PYTHON_VERSION is available via uv..."
|
||||
|
||||
local VERSION_MATCH
|
||||
VERSION_MATCH=$(uv python list --only-downloads |
|
||||
grep -E "^cpython-${PYTHON_VERSION//./\\.}\.[0-9]+-linux" |
|
||||
@ -1177,14 +1170,12 @@ function setup_uv() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
if uv python list | grep -q "cpython-${VERSION_MATCH}-linux.*uv/python"; then
|
||||
$STD msg_ok "Python $VERSION_MATCH already installed via uv"
|
||||
else
|
||||
if ! uv python list | grep -q "cpython-${VERSION_MATCH}-linux.*uv/python"; then
|
||||
if ! $STD uv python install "$VERSION_MATCH"; then
|
||||
msg_error "Failed to install Python $VERSION_MATCH via uv"
|
||||
return 1
|
||||
fi
|
||||
msg_ok "Installed Python $VERSION_MATCH via uv"
|
||||
msg_ok "Setup Python $VERSION_MATCH via uv"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@ -1214,7 +1205,6 @@ function ensure_usr_local_bin_persist() {
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
function setup_gs() {
|
||||
msg_info "Setup Ghostscript"
|
||||
mkdir -p /tmp
|
||||
TMP_DIR=$(mktemp -d)
|
||||
CURRENT_VERSION=$(gs --version 2>/dev/null || echo "0")
|
||||
@ -1230,12 +1220,11 @@ function setup_gs() {
|
||||
fi
|
||||
|
||||
if dpkg --compare-versions "$CURRENT_VERSION" ge "$LATEST_VERSION_DOTTED"; then
|
||||
msg_ok "Ghostscript is already at version $CURRENT_VERSION"
|
||||
rm -rf "$TMP_DIR"
|
||||
return
|
||||
fi
|
||||
|
||||
msg_info "Installing/Updating Ghostscript to $LATEST_VERSION_DOTTED"
|
||||
msg_info "Setup Ghostscript $LATEST_VERSION_DOTTED"
|
||||
curl -fsSL "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${LATEST_VERSION}/ghostscript-${LATEST_VERSION_DOTTED}.tar.gz" -o "$TMP_DIR/ghostscript.tar.gz"
|
||||
|
||||
if ! tar -xzf "$TMP_DIR/ghostscript.tar.gz" -C "$TMP_DIR"; then
|
||||
@ -1261,7 +1250,7 @@ function setup_gs() {
|
||||
rm -rf "$TMP_DIR"
|
||||
|
||||
if [[ $EXIT_CODE -eq 0 ]]; then
|
||||
msg_ok "Ghostscript installed/updated to version $LATEST_VERSION_DOTTED"
|
||||
msg_ok "Setup Ghostscript $LATEST_VERSION_DOTTED"
|
||||
else
|
||||
msg_error "Ghostscript installation failed"
|
||||
fi
|
||||
@ -1290,9 +1279,8 @@ function setup_ruby() {
|
||||
local TMP_DIR
|
||||
TMP_DIR=$(mktemp -d)
|
||||
|
||||
msg_info "Installing rbenv + ruby-build + Ruby $RUBY_VERSION"
|
||||
msg_info "Setup Ruby $RUBY_VERSION"
|
||||
|
||||
# Fetch latest rbenv release tag from GitHub (e.g. v1.3.2 → 1.3.2)
|
||||
local RBENV_RELEASE
|
||||
RBENV_RELEASE=$(curl -fsSL https://api.github.com/repos/rbenv/rbenv/releases/latest | grep '"tag_name":' | cut -d '"' -f4 | sed 's/^v//')
|
||||
if [[ -z "$RBENV_RELEASE" ]]; then
|
||||
@ -1301,14 +1289,12 @@ function setup_ruby() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Download and extract rbenv release
|
||||
curl -fsSL "https://github.com/rbenv/rbenv/archive/refs/tags/v${RBENV_RELEASE}.tar.gz" -o "$TMP_DIR/rbenv.tar.gz"
|
||||
tar -xzf "$TMP_DIR/rbenv.tar.gz" -C "$TMP_DIR"
|
||||
mkdir -p "$RBENV_DIR"
|
||||
cp -r "$TMP_DIR/rbenv-${RBENV_RELEASE}/." "$RBENV_DIR/"
|
||||
cd "$RBENV_DIR" && src/configure && $STD make -C src
|
||||
|
||||
# Fetch latest ruby-build plugin release tag (e.g. v20250507 → 20250507)
|
||||
local RUBY_BUILD_RELEASE
|
||||
RUBY_BUILD_RELEASE=$(curl -fsSL https://api.github.com/repos/rbenv/ruby-build/releases/latest | grep '"tag_name":' | cut -d '"' -f4 | sed 's/^v//')
|
||||
if [[ -z "$RUBY_BUILD_RELEASE" ]]; then
|
||||
@ -1317,44 +1303,35 @@ function setup_ruby() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Download and install ruby-build plugin
|
||||
curl -fsSL "https://github.com/rbenv/ruby-build/archive/refs/tags/v${RUBY_BUILD_RELEASE}.tar.gz" -o "$TMP_DIR/ruby-build.tar.gz"
|
||||
tar -xzf "$TMP_DIR/ruby-build.tar.gz" -C "$TMP_DIR"
|
||||
mkdir -p "$RBENV_DIR/plugins/ruby-build"
|
||||
cp -r "$TMP_DIR/ruby-build-${RUBY_BUILD_RELEASE}/." "$RBENV_DIR/plugins/ruby-build/"
|
||||
echo "$RUBY_BUILD_RELEASE" >"$RBENV_DIR/plugins/ruby-build/RUBY_BUILD_version.txt"
|
||||
|
||||
# Persist rbenv init to user's profile
|
||||
if ! grep -q 'rbenv init' "$PROFILE_FILE"; then
|
||||
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >>"$PROFILE_FILE"
|
||||
echo 'eval "$(rbenv init -)"' >>"$PROFILE_FILE"
|
||||
fi
|
||||
|
||||
# Activate rbenv in current shell
|
||||
export PATH="$RBENV_DIR/bin:$PATH"
|
||||
eval "$("$RBENV_BIN" init - bash)"
|
||||
|
||||
# Install Ruby version if not already present
|
||||
if "$RBENV_BIN" versions --bare | grep -qx "$RUBY_VERSION"; then
|
||||
msg_ok "Ruby $RUBY_VERSION already installed"
|
||||
else
|
||||
msg_info "Installing Ruby ${RUBY_VERSION} (patience)"
|
||||
if ! "$RBENV_BIN" versions --bare | grep -qx "$RUBY_VERSION"; then
|
||||
$STD "$RBENV_BIN" install "$RUBY_VERSION"
|
||||
fi
|
||||
|
||||
# Set Ruby version globally
|
||||
"$RBENV_BIN" global "$RUBY_VERSION"
|
||||
hash -r
|
||||
|
||||
# Optionally install Rails via gem
|
||||
if [[ "$RUBY_INSTALL_RAILS" == "true" ]]; then
|
||||
msg_info "Installing latest Rails via gem"
|
||||
msg_info "Setup Rails via gem"
|
||||
gem install rails
|
||||
msg_ok "Rails $(rails -v) installed"
|
||||
msg_ok "Setup Rails $(rails -v)"
|
||||
fi
|
||||
|
||||
rm -rf "$TMP_DIR"
|
||||
msg_ok "rbenv stack ready (Ruby $RUBY_VERSION)"
|
||||
msg_ok "Setup Ruby $RUBY_VERSION"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@ -1368,12 +1345,10 @@ function setup_ruby() {
|
||||
# ------------------------------------------------------------------------------
|
||||
function create_selfsigned_certs() {
|
||||
local app=${APP:-$(echo "${APPLICATION,,}" | tr -d ' ')}
|
||||
$STD msg_info "Creating Self-Signed Certificate"
|
||||
$STD openssl req -x509 -nodes -days 365 -newkey rsa:4096 \
|
||||
-keyout /etc/ssl/private/"$app"-selfsigned.key \
|
||||
-out /etc/ssl/certs/"$app"-selfsigned.crt \
|
||||
-subj "/C=US/O=$app/OU=Domain Control Validated/CN=localhost"
|
||||
$STD msg_ok "Created Self-Signed Certificate"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@ -1400,11 +1375,11 @@ function setup_rust() {
|
||||
|
||||
# rustup & toolchain
|
||||
if ! command -v rustup &>/dev/null; then
|
||||
msg_info "Installing rustup"
|
||||
msg_info "Setup Rust"
|
||||
curl -fsSL https://sh.rustup.rs | $STD sh -s -- -y --default-toolchain "$RUST_TOOLCHAIN"
|
||||
export PATH="$CARGO_BIN:$PATH"
|
||||
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >>"$HOME/.profile"
|
||||
msg_ok "Installed rustup with $RUST_TOOLCHAIN"
|
||||
msg_ok "Setup Rust"
|
||||
else
|
||||
$STD rustup install "$RUST_TOOLCHAIN"
|
||||
$STD rustup default "$RUST_TOOLCHAIN"
|
||||
@ -1429,20 +1404,21 @@ function setup_rust() {
|
||||
|
||||
if [[ -n "$INSTALLED_VER" ]]; then
|
||||
if [[ -n "$VER" && "$VER" != "$INSTALLED_VER" ]]; then
|
||||
msg_info "Updating $NAME from $INSTALLED_VER to $VER"
|
||||
msg_info "Update $NAME: $INSTALLED_VER → $VER"
|
||||
$STD cargo install "$NAME" --version "$VER" --force
|
||||
msg_ok "Updated $NAME to $VER"
|
||||
elif [[ -z "$VER" ]]; then
|
||||
msg_info "Updating $NAME to latest"
|
||||
msg_info "Update $NAME: $INSTALLED_VER → latest"
|
||||
$STD cargo install "$NAME" --force
|
||||
else
|
||||
msg_ok "$NAME@$INSTALLED_VER already up to date"
|
||||
msg_ok "Updated $NAME to latest"
|
||||
fi
|
||||
else
|
||||
msg_info "Installing $NAME ${VER:+($VER)}"
|
||||
msg_info "Setup $NAME ${VER:+($VER)}"
|
||||
$STD cargo install "$NAME" ${VER:+--version "$VER"}
|
||||
msg_ok "Setup $NAME ${VER:-latest}"
|
||||
fi
|
||||
done
|
||||
msg_ok "All requested Rust crates processed"
|
||||
msg_ok "Setup Rust"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -1456,7 +1432,7 @@ function setup_rust() {
|
||||
|
||||
function setup_adminer() {
|
||||
if grep -qi alpine /etc/os-release; then
|
||||
msg_info "Installing Adminer (Alpine)"
|
||||
msg_info "Setup Adminer (Alpine)"
|
||||
mkdir -p /var/www/localhost/htdocs/adminer
|
||||
if ! curl -fsSL https://github.com/vrana/adminer/releases/latest/download/adminer.php \
|
||||
-o /var/www/localhost/htdocs/adminer/index.php; then
|
||||
@ -1465,7 +1441,7 @@ function setup_adminer() {
|
||||
fi
|
||||
msg_ok "Adminer available at /adminer (Alpine)"
|
||||
else
|
||||
msg_info "Installing Adminer (Debian/Ubuntu)"
|
||||
msg_info "Setup Adminer (Debian/Ubuntu)"
|
||||
$STD apt-get install -y adminer
|
||||
$STD a2enconf adminer
|
||||
$STD systemctl reload apache2
|
||||
@ -1490,7 +1466,7 @@ function setup_yq() {
|
||||
local GITHUB_REPO="mikefarah/yq"
|
||||
|
||||
if ! command -v jq &>/dev/null; then
|
||||
$STD apt-get update -qq
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y jq || {
|
||||
msg_error "Failed to install jq"
|
||||
rm -rf "$TMP_DIR"
|
||||
@ -1506,7 +1482,6 @@ function setup_yq() {
|
||||
fi
|
||||
fi
|
||||
|
||||
msg_info "Setup yq"
|
||||
local RELEASE_JSON
|
||||
RELEASE_JSON=$(curl -fsSL "https://api.github.com/repos/${GITHUB_REPO}/releases/latest")
|
||||
local LATEST_VERSION
|
||||
@ -1519,11 +1494,10 @@ function setup_yq() {
|
||||
fi
|
||||
|
||||
if [[ -n "$CURRENT_VERSION" && "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
|
||||
msg_ok "Setup yq ($CURRENT_VERSION)"
|
||||
rm -rf "$TMP_DIR"
|
||||
return
|
||||
fi
|
||||
|
||||
msg_info "Setup yq ($LATEST_VERSION)"
|
||||
curl -fsSL "https://github.com/${GITHUB_REPO}/releases/download/v${LATEST_VERSION}/yq_linux_amd64" -o "$TMP_DIR/yq"
|
||||
chmod +x "$TMP_DIR/yq"
|
||||
mv "$TMP_DIR/yq" "$BINARY_PATH"
|
||||
|
Loading…
x
Reference in New Issue
Block a user