FacetedFox icon

mkspell.pl

FacetedFox | PRO | 12/17/18 02:37:48 AM UTC | 0 ⭐ | 7386 👁️ | Never ⏰ | []
Perl |

5.97 KB

|

None

|

0 👍

/

0 👎

#!/usr/bin/env perl
 
use strict;
use warnings;
use feature qw(:5.26);
 
use constant {
    MAINTAINER => "Kiyoshi Aman <kiyoshi.aman+adelie\@gmail.com>",
};
 
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;
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎