mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-27 15:56:09 +03:00
61 lines
2.1 KiB
Bash
61 lines
2.1 KiB
Bash
|
#!/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
|