#!/usr/bin/awk -f ##============================================================================== ## OpenWrt repository mirror script. ##------------------------------------------------------------------------------ ## TODO: ## - Delete packages not mentioned in the Packages file. ## - Make local target path absolute. ##============================================================================== BEGIN { Dir["reboot_core"] = "downloads.lede-project.org/releases/17.01.4/targets/x86/legacy/packages" Dir["reboot_base"] = "downloads.lede-project.org/releases/17.01.4/packages/i386_pentium/base" Dir["reboot_luci"] = "downloads.lede-project.org/releases/17.01.4/packages/i386_pentium/luci" Dir["reboot_packages"] = "downloads.lede-project.org/releases/17.01.4/packages/i386_pentium/packages" Dir["reboot_routing"] = "downloads.lede-project.org/releases/17.01.4/packages/i386_pentium/routing" Dir["reboot_telephony"] = "downloads.lede-project.org/releases/17.01.4/packages/i386_pentium/telephony" for(Component in Dir) { DestDir = Dir[Component] BaseURL = "http://"DestDir ## ## make sure Destdir exists ## system("test -d "DestDir" || mkdir -p "DestDir) ## ## get Packages.gz, save it and unpack to Packages on the fly ## GetPackages = "cd "DestDir" && wget -cO- "BaseURL"/Packages.gz | tee Packages.gz | gzip -dc | tee Packages" GetIPKs = "cd "DestDir" && wget -ci-" ## ## @@@todo@@@ add error checking here ## while( GetPackages | getline ) { if ( /^Filename: / ) print BaseURL"/"$2 | GetIPKs } close( GetPackages ) close( GetIPKs ) } }