#!/bin/bash # Update or clone specified OpenWRT package repositories set -e # Exit immediately if any command fails umask 022 # Set default file permissions (files=644, dirs=755) # Define repositories in the format: "git_url branch local_dir" REPOS=( "https://github.com/muink/luci-app-netspeedtest.git master package/luci-app-netspeedtest" "https://github.com/EasyTier/luci-app-easytier.git main package/luci-app-easytier" "https://github.com/jerrykuku/luci-theme-argon.git master package/luci-theme-argon" ) for REPO_INFO in "${REPOS[@]}"; do set -- $REPO_INFO REPO_URL=$1 REPO_BRANCH=$2 LOCAL_DIR=$3 echo "----------------------------------------" echo "Processing $LOCAL_DIR ($REPO_BRANCH)" echo "----------------------------------------" if [ -d "$LOCAL_DIR/.git" ]; then echo "Repository exists, updating..." pushd "$LOCAL_DIR" > /dev/null git fetch origin "$REPO_BRANCH" git checkout "$REPO_BRANCH" git pull --ff-only origin "$REPO_BRANCH" popd > /dev/null else echo "Repository not found, cloning..." git clone --depth 1 --branch "$REPO_BRANCH" --single-branch "$REPO_URL" "$LOCAL_DIR" fi echo "Done: $LOCAL_DIR" echo done echo "✅ All repositories updated successfully."