Add 'compile.sh'

main
ben 1 year ago
parent 0e273086ad
commit 532935b04a

@ -0,0 +1,118 @@
#!/bin/bash
# Script to compile a single openwrt package if the lxc-compile.sh script has already been run
print_success() { echo -e "\e[32m${@}\e[0m"; }
print_error() { echo -e "\e[31m${@}\e[0m"; }
if [ `whoami` != "root" ] && [ `whoami` != "forge" ] && [ `whoami` != "homestead" ] && [ `whoami` != "vagrant" ];
then
print_error "You must be root to run this script!"
exit 1
fi
# Ask user for router choice:
echo "What router do you want to build packages for today?"
select opt in "x86" "Gli gl-a1300, Gli bl1300" "TPLink Archer C7, Gli Crete ar750" "ASUS RT-ac88u" "Linksys E8450, BPI-R64" "gl-mt1300" "Linksys WRT32x, AC3200acm" "glinet-xe300, gli Shadow, Slate" "mt300nv2 Yellow mini"; do
case $opt in
"x86") folder="openwrt-sdk-21.02.7-x86-64_gcc-8.4.0_musl.Linux-x86_64";;
"Gli gl-a1300, Gli bl1300") folder="openwrt-sdk-23.05.0-rc2-ipq40xx-generic_gcc-12.3.0_musl_eabi.Linux-x86_64";;
"TPLink Archer C7, Gli Crete ar750") folder="openwrt-sdk-22.03.3-ath79-generic_gcc-11.2.0_musl.Linux-x86_64";;
"ASUS RT-ac88u") folder="openwrt-sdk-22.03.5-bcm53xx-generic_gcc-11.2.0_musl_eabi.Linux-x86_64";;
"Linksys E8450, BPI-R64") folder="openwrt-sdk-22.03.5-mediatek-mt7622_gcc-11.2.0_musl.Linux-x86_64";;
"gl-mt1300") folder="openwrt-sdk-21.02.6-ramips-mt7621_gcc-8.4.0_musl.Linux-x86_64";;
"Linksys WRT32x, AC3200acm") folder="openwrt-sdk-22.03.0-mvebu-cortexa9_gcc-11.2.0_musl_eabi.Linux-x86_64";;
"glinet-xe300, gli Shadow, Slate") folder="openwrt-sdk-22.03.0-mvebu-cortexa9_gcc-11.2.0_musl_eabi.Linux-x86_64";;
"mt300nv2 Yellow mini") folder="openwrt-sdk-21.02.3-ramips-mt76x8_gcc-8.4.0_musl.Linux-x86_64";;
*) echo "Invalid option";;
esac
break
done
# Ensure SDK folder exists
if [[ ! -d $folder ]]; then
print_error "The specified SDK folder does not exist!"
exit 1
fi
# Move to SDK folder
cd $folder
# Show available luci-app packages
apps=(
"luci-app-frigate"
"luci-app-easymesh"
"luci-app-atinout"
"luci-app-cellled"
"luci-app-mmconfig"
"luci-app-smstools3"
"luci-app-modeminfo"
"luci-app-btcpayserver"
"luci-theme-privaterouter"
"luci-app-nodered"
"luci-app-autogpt"
"luci-app-megamedia"
"luci-app-rtorrent"
"luci-app-webtop"
"luci-app-shortcutmenu"
"luci-app-plex"
"luci-app-filebrowser"
"luci-app-nextcloud"
"luci-app-seafile"
"luci-app-heimdall"
"luci-app-motioneye"
"luci-app-joplin"
"luci-app-ghostblog"
"luci-app-emby"
"luci-app-jellyfin"
"luci-app-prowlarr"
"luci-app-wordpress"
"luci-app-gitea"
"luci-app-libreddit"
"luci-app-whoogle"
"luci-app-vaultwarden"
"luci-app-mastodon"
"luci-app-discourse"
"luci-app-gotify"
"luci-app-jitsi"
"luci-app-owncast"
"luci-app-neko"
"luci-app-alltube"
"luci-app-bookstack"
"luci-app-searxng"
"luci-app-homeassistant"
"luci-app-photoprism"
"luci-app-qbittorrent"
"luci-app-simplex"
"luci-app-chatgpt"
"luci-app-lxc-attach"
"luci-app-fileassistant"
)
echo "Which OpenWRT luci-app package would you like to compile?"
select app in "${apps[@]}"; do
# Check app validity
if [[ " ${apps[@]} " =~ " ${app} " ]]; then
break
else
echo "Invalid option"
fi
done
# Compile selected app
base_url="https://gittylab.com/ben/"
git_url="${base_url}${app}"
# Find directories named "libexec" and apply chmod +x to them and their contents recursively
find . -type d -name "libexec" -exec chmod -R +x {} \;
echo "Permissions have been set for all 'libexec' directories and their contents."
git clone $git_url package/$app
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig # Let the user choose configuration
make package/$app/clean
make package/$app/compile
print_success "Compilation complete!"
Loading…
Cancel
Save