latest fedora updates
This commit is contained in:
Executable
+82
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
# ------------------------------------------------------------------
|
||||
# download_latest_appimage.sh
|
||||
#
|
||||
# Usage:
|
||||
# ./download_latest_appimage.sh <owner>/<repo> [output_dir]
|
||||
#
|
||||
# Example:
|
||||
# ./download_latest_appimage.sh Dygmalab/Bazecor /tmp
|
||||
#
|
||||
# The script uses the public GitHub API (no authentication token needed for
|
||||
# a single request). If you hit rate limits, set GITHUB_TOKEN with a
|
||||
# personal access token and the script will use it automatically.
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# ---------- Helper functions ----------
|
||||
error() {
|
||||
echo "❌ $*" >&2
|
||||
}
|
||||
warn() {
|
||||
echo "⚠️ $*"
|
||||
}
|
||||
|
||||
# ---------- Argument parsing ----------
|
||||
# if [[ $# -lt 1 ]]; then
|
||||
# error "Missing repository argument."
|
||||
# echo "Usage: $0 <owner>/<repo> [output_dir]"
|
||||
# exit 1
|
||||
# fi
|
||||
|
||||
REPO="Dygmalab/Bazecor" # e.g. Dygmalab/Bazecor
|
||||
OUTDIR="$HOME/AppImages"
|
||||
|
||||
# Ensure output directory exists
|
||||
mkdir -p "$OUTDIR"
|
||||
|
||||
# ---------- GitHub API ----------
|
||||
API_URL="https://api.github.com/repos/${REPO}/releases/latest"
|
||||
# If you have a token, uncomment the next line:
|
||||
# AUTH_HEADER="Authorization: token $GITHUB_TOKEN"
|
||||
|
||||
# Fetch release metadata (JSON)
|
||||
echo "🔎 Querying GitHub for latest release of ${REPO}..."
|
||||
RELEASE_JSON=$(curl -sSL --fail \
|
||||
"${API_URL}" \
|
||||
${AUTH_HEADER:+-H "$AUTH_HEADER"})
|
||||
|
||||
# ---------- Find the AppImage asset ----------
|
||||
APPIMAGE_URL=""
|
||||
while IFS= read -r line; do
|
||||
# Each line is a JSON object describing an asset.
|
||||
# We look for a "name" field that ends with .AppImage (case‑insensitive)
|
||||
if [[ "$line" =~ \"name\":\ *\"([^\"]+\.AppImage)\" ]]; then
|
||||
APPIMAGE_NAME="${BASH_REMATCH[1]}"
|
||||
# The download URL is in the "browser_download_url" field.
|
||||
if [[ "$line" =~ \"browser_download_url\":\ *\"([^\"]+)\" ]]; then
|
||||
APPIMAGE_URL="${BASH_REMATCH[1]}"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done < <(echo "$RELEASE_JSON" | jq -c '.assets[]')
|
||||
|
||||
if [[ -z $APPIMAGE_URL ]]; then
|
||||
error "No AppImage asset found in the latest release."
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "📥 Found AppImage: ${APPIMAGE_NAME}"
|
||||
echo "🔗 Download URL: ${APPIMAGE_URL}"
|
||||
|
||||
# ---------- Download ----------
|
||||
OUTFILE="${OUTDIR}/${APPIMAGE_NAME}"
|
||||
echo "🚚 Downloading to ${OUTFILE} ..."
|
||||
curl -L --fail \
|
||||
"${APPIMAGE_URL}" \
|
||||
-o "$OUTFILE"
|
||||
|
||||
chmod +x "$OUTFILE"
|
||||
echo "✅ Done! AppImage saved as $OUTFILE"
|
||||
|
||||
Executable
+93
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Fedora package bootstrap script
|
||||
# Author: Jake Pullen
|
||||
# Date : 2025-08-15
|
||||
#
|
||||
# Usage:
|
||||
# chmod +x fedora-setup.sh
|
||||
# sudo ./fedora-setup.sh
|
||||
# ------------------------------------------------------------
|
||||
|
||||
set -euo pipefail # safer shell behaviour
|
||||
shopt -s expand_aliases # if you use aliases inside the script
|
||||
|
||||
# 1. Update system first
|
||||
echo "==> Updating Fedora base packages..."
|
||||
sudo dnf upgrade --refresh -y
|
||||
|
||||
# 2. Install RPM‑Fusion repos (free & non‑free)
|
||||
echo "==> Enabling RPM‑Fusion repositories..."
|
||||
sudo dnf install \
|
||||
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
|
||||
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm \
|
||||
-y
|
||||
|
||||
# list all packages we want from dnf
|
||||
package_list=(
|
||||
"alacritty"
|
||||
"fastfetch"
|
||||
"zsh"
|
||||
"btop"
|
||||
"steam"
|
||||
)
|
||||
|
||||
# Create a string of packages
|
||||
package_string=$(IFS=' ' ; echo "${package_list[@]}")
|
||||
|
||||
# 3. Install packages listed
|
||||
echo "==> Installing dnf Packages..."
|
||||
sudo dnf install $package_string -y --skip-unavailable
|
||||
|
||||
# 5. Install Flatpak (if not present) and set up Flathub
|
||||
if ! command -v flatpak &>/dev/null; then
|
||||
echo "==> Installing Flatpak..."
|
||||
sudo dnf install flatpak -y
|
||||
fi
|
||||
|
||||
echo "==> Adding Flathub repository..."
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
# 6. Install Discord via Flatpak
|
||||
echo "==> Installing Discord..."
|
||||
flatpak install -y flathub com.discordapp.Discord
|
||||
flatpak install -y flathub com.spotify.Client
|
||||
|
||||
# 7. Install stuff from around the web that we want
|
||||
# UV for Python Dev
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
|
||||
# Rust, because we all love rust
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
|
||||
# Zed, we like a Neovim Backup
|
||||
curl -f https://zed.dev/install.sh | sh
|
||||
|
||||
# Bazecore for the Dygma Keyboard
|
||||
./bazecore_grab.sh
|
||||
|
||||
# sim link config
|
||||
folders_to_link=(
|
||||
"alacritty"
|
||||
"git"
|
||||
"zsh"
|
||||
)
|
||||
for folder in "${folders_to_link[@]}"; do
|
||||
config_path="$HOME/dotfiles/$folder"
|
||||
target_path="$HOME/.config/$folder"
|
||||
ln -s "$config_path" "$target_path"
|
||||
done
|
||||
|
||||
ln -s $HOME/dotfiles/git/gitconfig $HOME/.gitconfig
|
||||
|
||||
|
||||
# 9. Clean up (optional)
|
||||
echo "==> Cleaning up package cache..."
|
||||
sudo dnf clean all
|
||||
|
||||
echo "===================================================="
|
||||
echo "All done! Your Fedora system is now ready to go."
|
||||
echo "You can run 'flatpak list' to see Flatpak apps or 'dnf list installed' for rpm packages."
|
||||
echo "Happy hacking!"
|
||||
|
||||
Reference in New Issue
Block a user