first commit

This commit is contained in:
2025-06-03 23:03:08 +02:00
commit d40894b155
49 changed files with 49341 additions and 0 deletions

96
openwrt/source_analyse.pl Normal file
View File

@@ -0,0 +1,96 @@
use Mojo::UserAgent;
use Data::Printer;
use File::Slurp;
use JSON;
my $ua = Mojo::UserAgent->new;
$ua->max_redirects(1);
my $openwrtversion = '24.10.0-rc2';
my @routers = (
{
ip => '192.168.2.1',
name => 'HWR',
router => 'wr3000'
},
{
ip => '192.168.2.142',
name => 'DACH',
router => 'x5000r'
}
);
my $sources = {
x5000r => [
"https://downloads.openwrt.org/releases/$openwrtversion/targets/ramips/mt7621/packages/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/mipsel_24kc/base/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/mipsel_24kc/luci/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/mipsel_24kc/packages/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/mipsel_24kc/routing/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/mipsel_24kc/telephony/Packages.manifest"
],
wr3000 => [
"https://downloads.openwrt.org/releases/$openwrtversion/targets/mediatek/filogic/packages/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/aarch64_cortex-a53/base/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/aarch64_cortex-a53/luci/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/aarch64_cortex-a53/packages/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/aarch64_cortex-a53/routing/Packages.manifest",
"https://downloads.openwrt.org/releases/$openwrtversion/packages/aarch64_cortex-a53/telephony/Packages.manifest"
],
};
my $json = {};
for my $router ( keys %{$sources} ) {
$json->{$router} = {};
for my $t ( @{$sources->{$router}} ) {
my $tx = $ua->get($t)->result->body;
my @packages = $tx =~ /Package: (.*)/g;
my @size = $tx =~ /Size: (.*)/g;
my @version = $tx =~ /Version: (.*)/g;
my $cnt = 0;
for my $tr ( @packages ) {
$json->{$router}->{$tr} = {
version => $version[$cnt],
size => $size[$cnt],
};
$cnt ++;
}
}
}
for my $r ( @routers ) {
my $name = $r->{name};
my $namerouter = $r->{router};
my $ip = $r->{ip};
my $newpack = "$namerouter\_new_packages_$name.txt";
my $missingpack = "$namerouter\_missing_packages_$name.txt";
my $l = `ssh root\@$ip "opkg list-installed"`;
my @routerdata = split(/\n/, $l);
my $maxsize = 0;
write_file($newpack, '-uboot-envtools');
write_file($missingpack, '');
my $newpackage = {};
for my $pac ( @routerdata ) {
chomp $pac;
my ( $paket ) = split( ' - ', $pac );
if ( $newpackage->{$paket} ) {
print "$paket: already in source\n";
} else {
if ( $json->{$namerouter}->{$paket} ) {
$newpackage->{$paket} = 1;
$maxsize = $maxsize + $json->{$namerouter}->{$paket}->{size};
append_file($newpack, " $paket\n");
} else {
append_file($missingpack, " $paket\n");
}
}
}
}