1#!/bin/bash 2 3 4# Clean up previous run 5rm -rf dicts 6 7# Work in temporary directory 8mkdir temp 9cd temp 10 11 12# Download 13echo -n 'Downloading LibreOffice dictionaries...' 14loversion='6.4.1.1' 15lodict="libreoffice-dictionaries-${loversion}" 16lofiles="libreoffice-${loversion}/dictionaries" 17if [ ! -e "${lodict}.tar.xz" ]; then 18 curl -s -O -L "https://download.documentfoundation.org/libreoffice/src/6.4.1/${lodict}.tar.xz" 19 echo ' DONE' 20else 21 echo ' SKIPPED' 22fi 23 24echo -n 'Downloading Armenian dictionary...' 25hydict='hy_am_e_1940_dict-1.1' 26hyfiles='hy_am_e_1940_dict-1.1' 27if [ ! -e "${hydict}.oxt" ]; then 28 curl -s -L -o "${hydict}.oxt" 'https://extensions.openoffice.org/en/download/4838' 29 echo ' DONE' 30else 31 echo ' SKIPPED' 32fi 33 34echo -n 'Downloading Esperanto dictionary...' 35eodict='dict-eo' 36eofiles='dict-eo/dictionaries' 37if [ ! -e "${eodict}.oxt" ]; then 38 curl -s -O "https://extensions.libreoffice.org/extensions/esperanto-spellchecker-thesaurus-and-hyphenizer/1.01/@@download/file/${eodict}.oxt" 39 echo ' DONE' 40else 41 echo ' SKIPPED' 42fi 43 44echo -n 'Downloading Finnish dictionary...' 45if [ ! -e 'voikko.oxt' ]; then 46 curl -s -O 'https://www.puimula.org/htp/ooo/voikko-win/5.0.0.20151123/voikko.oxt' 47 echo ' DONE' 48else 49 echo ' SKIPPED' 50fi 51 52echo -n 'Downloading Korean dictionary...' 53kodict='Korean_spell-checker-0.7.91_LibO' 54kofiles='Korean_spell-checker-0.7.91_LibO/dictionaries' 55if [ ! -e "${kodict}.oxt" ]; then 56 curl -s -O "https://extensions.libreoffice.org/extensions/korean-spellchecker/0-7.91/@@download/file/${kodict}.oxt" 57 echo ' DONE' 58else 59 echo ' SKIPPED' 60fi 61 62 63# Extract 64echo -n 'Extracting LibreOffice dictionaries...' 65if [ ! -e "libreoffice-${loversion}" ]; then 66 tar -xaf "${lodict}.tar.xz" 67 echo ' DONE' 68else 69 echo ' SKIPPED' 70fi 71 72echo -n 'Extracting Armenian dictionary...' 73if [ ! -e "${hydict}" ]; then 74 unzip -qq "${hydict}.oxt" -d "${hydict}" 75 echo ' DONE' 76else 77 echo ' SKIPPED' 78fi 79 80echo -n 'Extracting Esperanto dictionary...' 81if [ ! -e "${eodict}" ]; then 82 unzip -qq "${eodict}.oxt" -d "${eodict}" 83 echo ' DONE' 84else 85 echo ' SKIPPED' 86fi 87 88echo -n 'Extracting Finnish dictionary...' 89if [ ! -e voikko ]; then 90 unzip -qq voikko.oxt -d voikko 91 echo ' DONE' 92else 93 echo ' SKIPPED' 94fi 95 96echo -n 'Extracting Korean dictionary...' 97if [ ! -e "${kodict}" ]; then 98 unzip -qq "${kodict}.oxt" -d "${kodict}" 99 echo ' DONE' 100else 101 echo ' SKIPPED' 102fi 103 104 105# Copy files 106echo -n 'Copying...' 107mkdir dicts 108echo -n ' af_ZA' 109cp -a $lofiles/af_ZA/af_ZA.aff dicts/af_ZA.aff 110cp -a $lofiles/af_ZA/af_ZA.dic dicts/af_ZA.dic 111echo -n ' ar' 112cp -a $lofiles/ar/ar.aff dicts/ar.aff 113cp -a $lofiles/ar/ar.dic dicts/ar.dic 114echo -n ' bs' 115cp -a $lofiles/bs_BA/bs_BA.aff dicts/bs.aff 116cp -a $lofiles/bs_BA/bs_BA.dic dicts/bs.dic 117echo -n ' ca' 118cp -a $lofiles/ca/dictionaries/ca.aff dicts/ca.aff 119cp -a $lofiles/ca/dictionaries/ca.dic dicts/ca.dic 120echo -n ' cs' 121cp -a $lofiles/cs_CZ/cs_CZ.aff dicts/cs.aff 122cp -a $lofiles/cs_CZ/cs_CZ.dic dicts/cs.dic 123echo -n ' da' 124cp -a $lofiles/da_DK/da_DK.aff dicts/da.aff 125cp -a $lofiles/da_DK/da_DK.dic dicts/da.dic 126echo -n ' de_AT' 127cp -a $lofiles/de/de_DE_frami.aff dicts/de_AT.aff 128cp -a $lofiles/de/de_AT_frami.dic dicts/de_AT.dic 129echo -n ' de_CH' 130cp -a $lofiles/de/de_DE_frami.aff dicts/de_CH.aff 131cp -a $lofiles/de/de_CH_frami.dic dicts/de_CH.dic 132echo -n ' de_DE' 133cp -a $lofiles/de/de_DE_frami.aff dicts/de_DE.aff 134cp -a $lofiles/de/de_DE_frami.dic dicts/de_DE.dic 135echo -n ' el' 136cp -a $lofiles/el_GR/el_GR.aff dicts/el.aff 137cp -a $lofiles/el_GR/el_GR.dic dicts/el.dic 138echo -n ' en_AU' 139cp -a $lofiles/en/en_AU.aff dicts/en_AU.aff 140cp -a $lofiles/en/en_AU.dic dicts/en_AU.dic 141echo -n ' en_CA' 142cp -a $lofiles/en/en_CA.aff dicts/en_CA.aff 143cp -a $lofiles/en/en_CA.dic dicts/en_CA.dic 144echo -n ' en_GB' 145cp -a $lofiles/en/en_GB.aff dicts/en_GB.aff 146cp -a $lofiles/en/en_GB.dic dicts/en_GB.dic 147echo -n ' en_US' 148cp -a $lofiles/en/en_US.aff dicts/en_US.aff 149cp -a $lofiles/en/en_US.dic dicts/en_US.dic 150echo -n ' en_ZA' 151cp -a $lofiles/en/en_ZA.aff dicts/en_ZA.aff 152cp -a $lofiles/en/en_ZA.dic dicts/en_ZA.dic 153echo -n ' eo' 154cp -a $eofiles/eo.aff dicts/eo.aff 155cp -a $eofiles/eo.dic dicts/eo.dic 156echo -n ' es' 157cp -a $lofiles/es/es_ANY.aff dicts/es.aff 158cp -a $lofiles/es/es_ANY.dic dicts/es.dic 159echo -n ' fi' 160cp -a voikko/voikko/2 dicts 161cp -a voikko/voikko/Windows-64bit-WindowsPE/libvoikko-1.dll dicts 162echo -n ' fr' 163cp -a $lofiles/fr_FR/fr.aff dicts/fr.aff 164cp -a $lofiles/fr_FR/fr.dic dicts/fr.dic 165echo -n ' gl' 166cp -a $lofiles/gl/gl_ES.aff dicts/gl.aff 167cp -a $lofiles/gl/gl_ES.dic dicts/gl.dic 168echo -n ' he' 169cp -a $lofiles/he_IL/he_IL.aff dicts/he.aff 170cp -a $lofiles/he_IL/he_IL.dic dicts/he.dic 171echo -n ' hu' 172cp -a $lofiles/hu_HU/hu_HU.aff dicts/hu.aff 173cp -a $lofiles/hu_HU/hu_HU.dic dicts/hu.dic 174echo -n ' hy' 175cp -a $hyfiles/hy_am_e_1940.aff dicts/hy.aff 176cp -a $hyfiles/hy_am_e_1940.dic dicts/hy.dic 177echo -n ' id' 178cp -a $lofiles/id/id_ID.aff dicts/id.aff 179cp -a $lofiles/id/id_ID.dic dicts/id.dic 180echo -n ' it' 181cp -a $lofiles/it_IT/it_IT.aff dicts/it.aff 182cp -a $lofiles/it_IT/it_IT.dic dicts/it.dic 183echo -n ' ko' 184cp -a $kofiles/ko-KR.aff dicts/ko.aff 185cp -a $kofiles/ko-KR.dic dicts/ko.dic 186echo -n ' lt' 187cp -a $lofiles/lt_LT/lt.aff dicts/lt.aff 188cp -a $lofiles/lt_LT/lt.dic dicts/lt.dic 189echo -n ' nl' 190cp -a $lofiles/nl_NL/nl_NL.aff dicts/nl.aff 191cp -a $lofiles/nl_NL/nl_NL.dic dicts/nl.dic 192echo -n ' pl' 193cp -a $lofiles/pl_PL/pl_PL.aff dicts/pl.aff 194cp -a $lofiles/pl_PL/pl_PL.dic dicts/pl.dic 195echo -n ' pt_BR' 196cp -a $lofiles/pt_BR/pt_BR.aff dicts/pt_BR.aff 197cp -a $lofiles/pt_BR/pt_BR.dic dicts/pt_BR.dic 198echo -n ' pt_PT' 199cp -a $lofiles/pt_PT/pt_PT.aff dicts/pt_PT.aff 200cp -a $lofiles/pt_PT/pt_PT.dic dicts/pt_PT.dic 201echo -n ' ro' 202cp -a $lofiles/ro/ro_RO.aff dicts/ro.aff 203cp -a $lofiles/ro/ro_RO.dic dicts/ro.dic 204echo -n ' ru' 205cp -a $lofiles/ru_RU/ru_RU.aff dicts/ru.aff 206cp -a $lofiles/ru_RU/ru_RU.dic dicts/ru.dic 207echo -n ' sk' 208cp -a $lofiles/sk_SK/sk_SK.aff dicts/sk.aff 209cp -a $lofiles/sk_SK/sk_SK.dic dicts/sk.dic 210echo -n ' sl' 211cp -a $lofiles/sl_SI/sl_SI.aff dicts/sl.aff 212cp -a $lofiles/sl_SI/sl_SI.dic dicts/sl.dic 213echo -n ' sr' 214cp -a $lofiles/sr/sr.aff dicts/sr.aff 215cp -a $lofiles/sr/sr.dic dicts/sr.dic 216cp -a $lofiles/sr/sr-Latn.aff dicts/sr-Latn.aff 217cp -a $lofiles/sr/sr-Latn.dic dicts/sr-Latn.dic 218echo -n ' sv' 219cp -a $lofiles/sv_SE/sv_SE.aff dicts/sv.aff 220cp -a $lofiles/sv_SE/sv_SE.dic dicts/sv.dic 221echo -n ' tr' 222cp -a $lofiles/tr_TR/tr_TR.aff dicts/tr.aff 223cp -a $lofiles/tr_TR/tr_TR.dic dicts/tr.dic 224echo -n ' uk' 225cp -a $lofiles/uk_UA/uk_UA.aff dicts/uk.aff 226cp -a $lofiles/uk_UA/uk_UA.dic dicts/uk.dic 227echo -n ' vi' 228cp -a $lofiles/vi/vi_VN.aff dicts/vi.aff 229cp -a $lofiles/vi/vi_VN.dic dicts/vi.dic 230echo ' DONE' 231 232 233# Finish and clean up 234cd .. 235mv temp/dicts . 236