mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 14:26:09 +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