You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.4 KiB
66 lines
1.4 KiB
#!/bin/bash
|
|
# Licensed under the GNU General Public License, v2
|
|
|
|
#
|
|
# Author: Ralph Sennhauser
|
|
#
|
|
# Find l10n packs for libreoffice and format it for use in ebuilds.
|
|
#
|
|
|
|
VERSION=${1:-4.1.5}
|
|
BASE_SRC_URI="http://download.documentfoundation.org/libreoffice/stable/${VERSION}/rpm/x86_64"
|
|
|
|
# needs lxml
|
|
print_available_tarballs() {
|
|
python << EOL
|
|
import sys, urllib.request
|
|
from xml.dom.minidom import parseString
|
|
from bs4 import BeautifulSoup
|
|
|
|
with urllib.request.urlopen("${BASE_SRC_URI}") as url:
|
|
html = url.read()
|
|
|
|
# broken html, try to sanitize
|
|
html = BeautifulSoup(html).prettify()
|
|
|
|
dom = parseString(html)
|
|
for elem in dom.getElementsByTagName('a'):
|
|
attr = elem.getAttribute("href")
|
|
if attr.endswith('tar.gz'):
|
|
if "install" in attr: continue
|
|
print(attr)
|
|
EOL
|
|
}
|
|
|
|
tarballs=( $(print_available_tarballs) )
|
|
help_packs=()
|
|
lang_packs=()
|
|
lang_packs_reduced=()
|
|
|
|
for tb in "${tarballs[@]}"; do
|
|
pack=${tb%.tar.gz}
|
|
pack=${pack##*rpm_}
|
|
pack=${pack/en-US/en}
|
|
pack=${pack/-/_}
|
|
pack=${pack/en-US/en}
|
|
if [[ ${tb} =~ helppack ]]; then
|
|
pack=${pack/helppack_/}
|
|
help_packs+=( ${pack} )
|
|
elif [[ ${tb} =~ langpack ]]; then
|
|
pack=${pack/langpack_/}
|
|
lang_packs+=( ${pack} )
|
|
fi
|
|
done
|
|
|
|
for lpack in "${lang_packs[@]}"; do
|
|
for hpack in "${help_packs[@]}"; do
|
|
if [[ ${hpack} == ${lpack} ]]; then
|
|
continue 2
|
|
fi
|
|
done
|
|
lang_packs_reduced+=( ${lpack} )
|
|
done
|
|
|
|
echo "LANGUAGES_HELP=\" ${help_packs[@]} \""
|
|
echo "LANGUAGES=\"\${LANGUAGES_HELP}${lang_packs_reduced[@]} \""
|