#!/usr/bin/env perl use strict; use warnings; use feature qw(:5.26); use constant { MAINTAINER => "Kiyoshi Aman ", }; my %dicts = ( cy => ["Welsh", "aspell-cy-0.50-3.tar.bz2"], da => ["Danish", "aspell5-da-1.4.42-1.tar.bz2"], de => ["German", "aspell6-de-20030222-1.tar.bz2"], 'de-alt' => ["German (Old Spelling)", "aspell6-de-alt-2.1-1.tar.bz2"], el => ["Greek", "aspell6-el-0.08-0.tar.bz2"], en => ["English", "aspell6-en-2018.04.16-0.tar.bz2"], eo => ["Esperanto", "aspell6-eo-2.1.20000225a-2.tar.bz2"], es => ["Spanish", "aspell6-es-1.11-2.tar.bz2"], et => ["Estonian", "aspell6-et-0.1.21-1.tar.bz2"], fa => ["Persian", "aspell6-fa-0.11-0.tar.bz2"], fi => ["Finnish", "aspell6-fi-0.7-0.tar.bz2"], fo => ["Faroese", "aspell5-fo-0.2.16-1.tar.bz2"], fr => ["French", "aspell-fr-0.50-3.tar.bz2"], fy => ["Frisian", "aspell6-fy-0.12-0.tar.bz2"], ga => ["Irish", "aspell5-ga-4.5-0.tar.bz2"], gd => ["Scottish Gaelic", "aspell5-gd-0.1.1-1.tar.bz2"], gl => ["Galician", "aspell6-gl-0.5a-2.tar.bz2"], grc => ["Ancient Greek", "aspell6-grc-0.02-0.tar.bz2"], gu => ["Gujarati", "aspell6-gu-0.03-0.tar.bz2"], gv => ["Manx Gaelic", "aspell-gv-0.50-0.tar.bz2"], he => ["Hebrew", "aspell6-he-1.0-0.tar.bz2"], hi => ["Hindi", "aspell6-hi-0.02-0.tar.bz2"], hil => ["Hiligaynon", "aspell5-hil-0.11-0.tar.bz2"], hr => ["Croatian", "aspell-hr-0.51-0.tar.bz2"], hsb => ["Upper Sorbian", "aspell6-hsb-0.02-0.tar.bz2"], hu => ["Hungarian", "aspell6-hu-0.99.4.2-0.tar.bz2"], hus => ["Huastec Tenek", "aspell6-hus-0.03-1.tar.bz2"], hy => ["Armenian", "aspell6-hy-0.10.0-0.tar.bz2"], ia => ["Interlingua", "aspell-ia-0.50-1.tar.bz2"], id => ["Indonesian", "aspell5-id-1.2-0.tar.bz2"], is => ["Icelandic", "aspell-is-0.51.1-0.tar.bz2"], it => ["Italian", "aspell6-it-2.2_20050523-0.tar.bz2"], kn => ["Kannada", "aspell6-kn-0.01-1.tar.bz2"], ku => ["Kurdi", "aspell5-ku-0.20-1.tar.bz2"], ky => ["Kirghiz", "aspell6-ky-0.01-0.tar.bz2"], la => ["Latin", "aspell6-la-20020503-0.tar.bz2"], lt => ["Lithuanian", "aspell6-lt-1.2.1-0.tar.bz2"], lv => ["Latvian", "aspell6-lv-0.5.5-1.tar.bz2"], mg => ["Malagasy", "aspell5-mg-0.03-0.tar.bz2"], mi => ["Maori", "aspell-mi-0.50-0.tar.bz2"], mk => ["Macedonian", "aspell-mk-0.50-0.tar.bz2"], ml => ["Malayalam", "aspell6-ml-0.03-1.tar.bz2"], mn => ["Mongolian", "aspell6-mn-0.06-2.tar.bz2"], mr => ["Marathi", "aspell6-mr-0.10-0.tar.bz2"], ms => ["Malay", "aspell-ms-0.50-0.tar.bz2"], mt => ["Maltese", "aspell-mt-0.50-0.tar.bz2"], nb => ["Norwegian", "aspell-nb-0.50.1-0.tar.bz2"], nds => ["Low", "aspell6-nds-0.01-0.tar.bz2"], nl => ["Dutch", "aspell-nl-0.50-2.tar.bz2"], nn => ["Norwegian", "aspell-nn-0.50.1-1.tar.bz2"], ny => ["Chichewa", "aspell5-ny-0.01-0.tar.bz2"], or => ["Oriya", "aspell6-or-0.03-1.tar.bz2"], pa => ["Punjabi", "aspell6-pa-0.01-1.tar.bz2"], pl => ["Polish", "aspell6-pl-6.0_20061121-0.tar.bz2"], pt_BR => ["Brazilian Portuguese", "aspell6-pt_BR-20090702-0.tar.bz2"], pt_PT => ["Portuguese", "aspell6-pt_PT-20070510-0.tar.bz2"], qu => ["Quechua", "aspell6-qu-0.02-0.tar.bz2"], ro => ["Romanian", "aspell5-ro-3.3-2.tar.bz2"], ru => ["Russian", "aspell6-ru-0.99f7-1.tar.bz2"], rw => ["Kinyarwanda", "aspell-rw-0.50-0.tar.bz2"], sc => ["Sardinian", "aspell5-sc-1.0.tar.bz2"], sk => ["Slovak", "aspell6-sk-2.01-2.tar.bz2"], sl => ["Slovenian", "aspell-sl-0.50-0.tar.bz2"], sr => ["Serbian", "aspell6-sr-0.02.tar.bz2"], sv => ["Swedish", "aspell-sv-0.51-0.tar.bz2"], sw => ["Swahili", "aspell-sw-0.50-0.tar.bz2"], ta => ["Tamil", "aspell6-ta-20040424-1.tar.bz2"], te => ["Telugu", "aspell6-te-0.01-2.tar.bz2"], tet => ["Tetum", "aspell5-tet-0.1.1.tar.bz2"], tk => ["Turkmen", "aspell5-tk-0.01-0.tar.bz2"], tl => ["Tagalog", "aspell5-tl-0.02-1.tar.bz2"], tn => ["Setswana", "aspell5-tn-1.0.1-0.tar.bz2"], tr => ["Turkish", "aspell-tr-0.50-0.tar.bz2"], uk => ["Ukrainian", "aspell6-uk-1.4.0-0.tar.bz2"], uz => ["Uzbek", "aspell6-uz-0.6-0.tar.bz2"], vi => ["Vietnamese", "aspell6-vi-0.01.1-1.tar.bz2"], wa => ["Walloon", "aspell-wa-0.50-0.tar.bz2"], yi => ["Yiddish", "aspell6-yi-0.01.1-1.tar.bz2"], zu => ["Zulu", "aspell-zu-0.50-0.tar.bz2"], ); my $apkbuild = <<'EOF'; # Contributor: %name% # Maintainer: %name% pkgname=aspell-dict-%cc% pkgver=%pkgver% pkgdesc="%lang% dictionaries for aspell" url="http://aspell.net" arch="noarch" options="!check" # no tests license="" depends="aspell" makedepends="debianutils-which" source="ftp://ftp.gnu.org/gnu/aspell/dict/%cc%/%filename%" builddir="$srcdir/%dirname%" build() { cd "$builddir" ./configure --vars DESTDIR="$pkgdir" } package() { cd "$builddir" make DESTDIR="$pkgdir" install } EOF for my $cc (keys %dicts) { my %vars = ( cc => $cc, lang => $dicts{$cc}[0], name => MAINTAINER, ); my $fname = $dicts{$cc}[1]; $fname =~ /^(aspell[56]?-$cc)-(.*?)\.tar\.bz2$/; my ($dir, $temp) = ($1, $2); ($vars{pkgver}, $vars{pkgver2}) = split /-/, $temp, 2; if (defined($vars{pkgver2})) { $vars{pkgver} .= "\n_pkgver=\$pkgver-$vars{pkgver2}"; $vars{dirname} .= "-$vars{pkgver2}"; $fname =~ s/-\d+(\.\d+)+(_\d+)?[a-z]?-\d/-\$_pkgver/; $vars{dirname} = "$dir-\$_pkgver"; } else { $fname =~ s/-\d+(\.\d+)+(_\d+)?[a-z]?/-\$pkgver/; $vars{dirname} = "$dir-\$pkgver"; } $vars{filename} = $fname; my $content = $apkbuild; $content =~ s/%([a-z0-9]+)%/$vars{$1}/g; mkdir "aspell-dict-$vars{cc}" or die "Can't create directory for $vars{cc}: $!\n"; open my $fh, '>', "aspell-dict-$vars{cc}/APKBUILD" or die "Can't open APKBUILD for $vars{cc}: $!\n"; $fh->print($content); close $fh; }