mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 06:16:30 +03:00
Add tool to list OpenWrt architectures and targets
This commit is contained in:
parent
a787cbd99d
commit
a826b00930
60
tools/list-openwrt.sh
Normal file
60
tools/list-openwrt.sh
Normal file
@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
# $version can be 21.02 or 19.07.
|
||||
version=19.07.7
|
||||
if [ ! -d /tmp/openwrt ]; then
|
||||
cd /tmp
|
||||
git clone https://github.com/openwrt/openwrt.git
|
||||
cd openwrt
|
||||
fi
|
||||
cd /tmp/openwrt
|
||||
git -c advice.detachedHead=false checkout v$version
|
||||
export TOPDIR=$PWD
|
||||
cd target/linux
|
||||
>targets.git
|
||||
for target in *; do
|
||||
[ -d $target ] || continue
|
||||
subtargets=$(make -C $target --no-print-directory DUMP=1 TARGET_BUILD=1 val.SUBTARGETS 2>/dev/null)
|
||||
[ "$subtargets" ] || subtargets=generic
|
||||
for subtarget in $subtargets; do
|
||||
echo $(make -C $target --no-print-directory DUMP=1 TARGET_BUILD=1 SUBTARGET=$subtarget 2>/dev/null | egrep '^(Target:|Target-Arch-Packages:)' | cut -d: -f2) >>targets.git
|
||||
done
|
||||
done
|
||||
|
||||
targets=$(curl -s https://downloads.openwrt.org/releases/$version/targets/ | grep '<td class="n"><a href=' | cut -d'"' -f4 | sed 's,/,,')
|
||||
>targets.sdk
|
||||
for target in $targets; do
|
||||
subtargets=$(curl -s https://downloads.openwrt.org/releases/$version/targets/$target/ | grep '<td class="n"><a href=' | cut -d'"' -f4 | sed 's,/,,')
|
||||
for subtarget in $subtargets; do
|
||||
arch=$(curl -s https://downloads.openwrt.org/releases/$version/targets/$target/$subtarget/profiles.json | grep arch_packages | cut -d'"' -f4)
|
||||
echo $target/$subtarget $arch >>targets.sdk
|
||||
done
|
||||
done
|
||||
|
||||
cat >parse-targets.py <<EOF
|
||||
arch_by_target_git = {}
|
||||
arch_by_target_sdk = {}
|
||||
for line in open('targets.git'):
|
||||
fields = line.split()
|
||||
if not fields:
|
||||
continue
|
||||
arch_by_target_git[fields[0]] = fields[1]
|
||||
for line in open('targets.sdk'):
|
||||
fields = line.split()
|
||||
if len(fields) == 2:
|
||||
if arch_by_target_git[fields[0]] != fields[1]:
|
||||
raise Exception(line + ': wrong arch')
|
||||
arch_by_target_sdk[fields[0]] = fields[1]
|
||||
else:
|
||||
arch_by_target_sdk[fields[0]] = ''
|
||||
for arch in sorted(set(arch_by_target_git.values())):
|
||||
targets = []
|
||||
for t in arch_by_target_git:
|
||||
if arch_by_target_git[t] != arch:
|
||||
continue
|
||||
if t in arch_by_target_sdk:
|
||||
targets.append(t)
|
||||
else:
|
||||
targets.append('~~' + t + '~~')
|
||||
print('|', arch, '|?|', ' '.join(sorted(set(targets))), '|')
|
||||
EOF
|
||||
python3 parse-targets.py
|
Loading…
Reference in New Issue
Block a user