Add 'compile.sh'
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…
Reference in New Issue