Advertisement
FacetedFox

mkspell.pl

Dec 16th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 5.97 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use strict;
  4. use warnings;
  5. use feature qw(:5.26);
  6.  
  7. use constant {
  8.     MAINTAINER => "Kiyoshi Aman <kiyoshi.aman+adelie\@gmail.com>",
  9. };
  10.  
  11. my %dicts = (
  12.     cy => ["Welsh", "aspell-cy-0.50-3.tar.bz2"],
  13.     da => ["Danish", "aspell5-da-1.4.42-1.tar.bz2"],
  14.     de => ["German", "aspell6-de-20030222-1.tar.bz2"],
  15.     'de-alt' => ["German (Old Spelling)", "aspell6-de-alt-2.1-1.tar.bz2"],
  16.     el => ["Greek", "aspell6-el-0.08-0.tar.bz2"],
  17.     en => ["English", "aspell6-en-2018.04.16-0.tar.bz2"],
  18.     eo => ["Esperanto", "aspell6-eo-2.1.20000225a-2.tar.bz2"],
  19.     es => ["Spanish", "aspell6-es-1.11-2.tar.bz2"],
  20.     et => ["Estonian", "aspell6-et-0.1.21-1.tar.bz2"],
  21.     fa => ["Persian", "aspell6-fa-0.11-0.tar.bz2"],
  22.     fi => ["Finnish", "aspell6-fi-0.7-0.tar.bz2"],
  23.     fo => ["Faroese", "aspell5-fo-0.2.16-1.tar.bz2"],
  24.     fr => ["French", "aspell-fr-0.50-3.tar.bz2"],
  25.     fy => ["Frisian", "aspell6-fy-0.12-0.tar.bz2"],
  26.     ga => ["Irish", "aspell5-ga-4.5-0.tar.bz2"],
  27.     gd => ["Scottish Gaelic", "aspell5-gd-0.1.1-1.tar.bz2"],
  28.     gl => ["Galician", "aspell6-gl-0.5a-2.tar.bz2"],
  29.     grc => ["Ancient Greek", "aspell6-grc-0.02-0.tar.bz2"],
  30.     gu => ["Gujarati", "aspell6-gu-0.03-0.tar.bz2"],
  31.     gv => ["Manx Gaelic", "aspell-gv-0.50-0.tar.bz2"],
  32.     he => ["Hebrew", "aspell6-he-1.0-0.tar.bz2"],
  33.     hi => ["Hindi", "aspell6-hi-0.02-0.tar.bz2"],
  34.     hil => ["Hiligaynon", "aspell5-hil-0.11-0.tar.bz2"],
  35.     hr => ["Croatian", "aspell-hr-0.51-0.tar.bz2"],
  36.     hsb => ["Upper Sorbian", "aspell6-hsb-0.02-0.tar.bz2"],
  37.     hu => ["Hungarian", "aspell6-hu-0.99.4.2-0.tar.bz2"],
  38.     hus => ["Huastec Tenek", "aspell6-hus-0.03-1.tar.bz2"],
  39.     hy => ["Armenian", "aspell6-hy-0.10.0-0.tar.bz2"],
  40.     ia => ["Interlingua", "aspell-ia-0.50-1.tar.bz2"],
  41.     id => ["Indonesian", "aspell5-id-1.2-0.tar.bz2"],
  42.     is => ["Icelandic", "aspell-is-0.51.1-0.tar.bz2"],
  43.     it => ["Italian", "aspell6-it-2.2_20050523-0.tar.bz2"],
  44.     kn => ["Kannada", "aspell6-kn-0.01-1.tar.bz2"],
  45.     ku => ["Kurdi", "aspell5-ku-0.20-1.tar.bz2"],
  46.     ky => ["Kirghiz", "aspell6-ky-0.01-0.tar.bz2"],
  47.     la => ["Latin", "aspell6-la-20020503-0.tar.bz2"],
  48.     lt => ["Lithuanian", "aspell6-lt-1.2.1-0.tar.bz2"],
  49.     lv => ["Latvian", "aspell6-lv-0.5.5-1.tar.bz2"],
  50.     mg => ["Malagasy", "aspell5-mg-0.03-0.tar.bz2"],
  51.     mi => ["Maori", "aspell-mi-0.50-0.tar.bz2"],
  52.     mk => ["Macedonian", "aspell-mk-0.50-0.tar.bz2"],
  53.     ml => ["Malayalam", "aspell6-ml-0.03-1.tar.bz2"],
  54.     mn => ["Mongolian", "aspell6-mn-0.06-2.tar.bz2"],
  55.     mr => ["Marathi", "aspell6-mr-0.10-0.tar.bz2"],
  56.     ms => ["Malay", "aspell-ms-0.50-0.tar.bz2"],
  57.     mt => ["Maltese", "aspell-mt-0.50-0.tar.bz2"],
  58.     nb => ["Norwegian", "aspell-nb-0.50.1-0.tar.bz2"],
  59.     nds => ["Low", "aspell6-nds-0.01-0.tar.bz2"],
  60.     nl => ["Dutch", "aspell-nl-0.50-2.tar.bz2"],
  61.     nn => ["Norwegian", "aspell-nn-0.50.1-1.tar.bz2"],
  62.     ny => ["Chichewa", "aspell5-ny-0.01-0.tar.bz2"],
  63.     or => ["Oriya", "aspell6-or-0.03-1.tar.bz2"],
  64.     pa => ["Punjabi", "aspell6-pa-0.01-1.tar.bz2"],
  65.     pl => ["Polish", "aspell6-pl-6.0_20061121-0.tar.bz2"],
  66.     pt_BR => ["Brazilian Portuguese", "aspell6-pt_BR-20090702-0.tar.bz2"],
  67.     pt_PT => ["Portuguese", "aspell6-pt_PT-20070510-0.tar.bz2"],
  68.     qu => ["Quechua", "aspell6-qu-0.02-0.tar.bz2"],
  69.     ro => ["Romanian", "aspell5-ro-3.3-2.tar.bz2"],
  70.     ru => ["Russian", "aspell6-ru-0.99f7-1.tar.bz2"],
  71.     rw => ["Kinyarwanda", "aspell-rw-0.50-0.tar.bz2"],
  72.     sc => ["Sardinian", "aspell5-sc-1.0.tar.bz2"],
  73.     sk => ["Slovak", "aspell6-sk-2.01-2.tar.bz2"],
  74.     sl => ["Slovenian", "aspell-sl-0.50-0.tar.bz2"],
  75.     sr => ["Serbian", "aspell6-sr-0.02.tar.bz2"],
  76.     sv => ["Swedish", "aspell-sv-0.51-0.tar.bz2"],
  77.     sw => ["Swahili", "aspell-sw-0.50-0.tar.bz2"],
  78.     ta => ["Tamil", "aspell6-ta-20040424-1.tar.bz2"],
  79.     te => ["Telugu", "aspell6-te-0.01-2.tar.bz2"],
  80.     tet => ["Tetum", "aspell5-tet-0.1.1.tar.bz2"],
  81.     tk => ["Turkmen", "aspell5-tk-0.01-0.tar.bz2"],
  82.     tl => ["Tagalog", "aspell5-tl-0.02-1.tar.bz2"],
  83.     tn => ["Setswana", "aspell5-tn-1.0.1-0.tar.bz2"],
  84.     tr => ["Turkish", "aspell-tr-0.50-0.tar.bz2"],
  85.     uk => ["Ukrainian", "aspell6-uk-1.4.0-0.tar.bz2"],
  86.     uz => ["Uzbek", "aspell6-uz-0.6-0.tar.bz2"],
  87.     vi => ["Vietnamese", "aspell6-vi-0.01.1-1.tar.bz2"],
  88.     wa => ["Walloon", "aspell-wa-0.50-0.tar.bz2"],
  89.     yi => ["Yiddish", "aspell6-yi-0.01.1-1.tar.bz2"],
  90.     zu => ["Zulu", "aspell-zu-0.50-0.tar.bz2"],
  91. );
  92.  
  93. my $apkbuild = <<'EOF';
  94. # Contributor: %name%
  95. # Maintainer: %name%
  96. pkgname=aspell-dict-%cc%
  97. pkgver=%pkgver%
  98. pkgdesc="%lang% dictionaries for aspell"
  99. url="http://aspell.net"
  100. arch="noarch"
  101. options="!check" # no tests
  102. license=""
  103. depends="aspell"
  104. makedepends="debianutils-which"
  105. source="ftp://ftp.gnu.org/gnu/aspell/dict/%cc%/%filename%"
  106. builddir="$srcdir/%dirname%"
  107.  
  108. build() {
  109.     cd "$builddir"
  110.     ./configure --vars DESTDIR="$pkgdir"
  111. }
  112.  
  113. package() {
  114.     cd "$builddir"
  115.     make DESTDIR="$pkgdir" install
  116. }
  117. EOF
  118.  
  119. for my $cc (keys %dicts) {
  120.     my %vars = (
  121.         cc => $cc,
  122.         lang => $dicts{$cc}[0],
  123.         name => MAINTAINER,
  124.     );
  125.     my $fname = $dicts{$cc}[1];
  126.     $fname =~ /^(aspell[56]?-$cc)-(.*?)\.tar\.bz2$/;
  127.     my ($dir, $temp) = ($1, $2);
  128.     ($vars{pkgver}, $vars{pkgver2}) = split /-/, $temp, 2;
  129.  
  130.     if (defined($vars{pkgver2})) {
  131.         $vars{pkgver} .= "\n_pkgver=\$pkgver-$vars{pkgver2}";
  132.         $vars{dirname} .= "-$vars{pkgver2}";
  133.         $fname =~ s/-\d+(\.\d+)+(_\d+)?[a-z]?-\d/-\$_pkgver/;
  134.         $vars{dirname} = "$dir-\$_pkgver";
  135.     } else {
  136.         $fname =~ s/-\d+(\.\d+)+(_\d+)?[a-z]?/-\$pkgver/;
  137.         $vars{dirname} = "$dir-\$pkgver";
  138.     }
  139.     $vars{filename} = $fname;
  140.  
  141.     my $content = $apkbuild;
  142.     $content =~ s/%([a-z0-9]+)%/$vars{$1}/g;
  143.  
  144.     mkdir "aspell-dict-$vars{cc}" or die "Can't create directory for $vars{cc}: $!\n";
  145.     open my $fh, '>', "aspell-dict-$vars{cc}/APKBUILD" or die "Can't open APKBUILD for $vars{cc}: $!\n";
  146.     $fh->print($content);
  147.     close $fh;
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement