]> git.donarmstrong.com Git - deb_pkgs/scowl.git/blob - speller/make-hunspell-dict
New upstream version 2018.04.16
[deb_pkgs/scowl.git] / speller / make-hunspell-dict
1 #!/usr/bin/env bash
2
3 ASPELL=aspell
4 HUNSPELL=hunspell
5 : ${SCOWL:=..}
6 SPELLER="$SCOWL/speller"
7 : ${UNIX2DOS:=unix2dos}
8
9 set -e
10
11 export LANG=C
12 export LC_ALL=C
13 export LC_CTYPE=C
14 export LC_COLLATE=C
15
16 SIZE=60
17
18 mk-list() { $SCOWL/mk-list -d $SCOWL/final "$@"; }
19
20 prep() {
21   echo prep 
22
23   cat $SCOWL/misc/{offensive.1,offensive.2,profane.1} | sort -u > nosug
24 }
25
26 doit() {
27   echo creating $1.dic
28
29   eval $2 | sort -u > $1.0
30
31   comm -12 $1.0 nosug > $1-nosug.1
32
33   comm -23 $1.0 nosug > $1.1
34
35   $SPELLER/munch-list munch $SPELLER/en.aff < $1-nosug.1 | $SPELLER/add-no-suggest > $1.2
36
37   $SPELLER/munch-list munch $SPELLER/en.aff < $1.1 >> $1.2
38
39   cat $SPELLER/en.dic.supp >> $1.2
40
41   wc -l < $1.2 | tr -d '[:blank:]' > $1.dic
42   cat $1.2 | sort | iconv -f iso-8859-1 -t utf-8 >> $1.dic
43
44   cp $SPELLER/en.aff $1.aff
45   
46   if [ "$SCOWL_VERSION" ]; then
47     fn="$1-$SCOWL_VERSION"
48   else
49     fn="$1"
50   fi
51
52   WHAT="$1 Hunspell Dictionary" sh $SPELLER/README_en.txt.sh > README_$1.txt
53   if [ -z "$3" ]; then
54     echo "Wordlist Command: $2" >> README_$1.txt
55   else
56     cat $3 >> README_$1.txt
57   fi
58
59   rm -f hunspell-$fn.zip
60   zip -9 hunspell-$fn.zip README_$1.txt $1.dic $1.aff
61
62   if [ -z "$3" ]; then
63     mkdir -p hunspell
64     cp hunspell-$fn.zip hunspell/
65
66     #echo check
67
68     cat $1-nosug.1 $1.1 | sort -u > $1.tocheck
69
70     #hunspell -l -d ./$1 < $1.dic.tocheck > misspelled
71
72     cat $1.tocheck | iconv -f iso-8859-1 -t utf-8 | $UNIX2DOS > $1.txt
73     cat <<EOF > README.txt
74 This zip file contains the words found in the corresponding Hunspell
75 dictionary.  See the file README_$1.txt.
76 EOF
77     zip -9 hunspell/wordlist-$fn.zip README.txt README_$1.txt $1.txt
78   fi
79 }
80
81 prep
82
83 if [ "$1" = "-all" ]
84 then 
85
86   doit en_US "mk-list --accents=strip en_US $SIZE"
87   doit en_CA "mk-list --accents=strip en_CA $SIZE"
88   doit en_GB-ize "mk-list --accents=strip en_GB-ize $SIZE"
89   doit en_GB-ise "mk-list --accents=strip en_GB-ise $SIZE"
90   doit en_AU "mk-list --accents=strip en_AU $SIZE"
91
92   doit en_US-large "mk-list -v1 --accents=both en_US 70"
93   doit en_CA-large "mk-list -v1 --accents=both en_CA 70"
94   doit en_GB-large "mk-list -v1 --accents=both en_GB-ize en_GB-ise 70"
95   doit en_AU-large "mk-list -v1 --accents=both en_AU 70"
96
97   sh $SPELLER/README_en.txt.sh > hunspell/README
98
99 elif [ "$1" = "-one" -a -n "$2" -a -n "$3" ]
100 then
101
102   doit $2 "cat" $3
103
104 else 
105
106   echo "usage: $0 -all | -one <dict-name> <parms file>"
107
108 fi
109
110 #rm eng*.dat nosug en_US*.? en_CA*.?