#!/bin/bash
# hent-ordbank – Hent, pakk ut og gjer ordbankfilene klare til bruk.
#
# Copyright © 2008, 2009, 2010, 2012, 2018–2020 Karl Ove Hufthammer <karl@huftis.org>.
#
#     This file is part of Ordbanken.
#
#     Ordbanken is free software: you can redistribute it and/or modify
#     it under the terms of the GNU General Public License as published by
#     the Free Software Foundation, either version 3 of the License, or
#     (at your option) any later version.
#
#     This program is distributed in the hope that it will be useful,
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#     GNU General Public License for more details.
#
#     You should have received a copy of the GNU General Public License
#     along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Avslutt ved eventuell feil
set -o errexit

# Gå til mappa med ordlistefilene.
cd ..

# Hent ned filene (manuelt) frå
#   https://www.nb.no/sprakbanken/ressurskatalog/oai-nb-no-sbr-41/
# og
#   https://www.nb.no/sprakbanken/ressurskatalog/oai-nb-no-sbr-5/


# Pakk ut filene (til undermapper).
mappe_nn=Norsk_ordbank_nno_2012
mappe_nb=Norsk_ordbank_nob_2005
mkdir -p $mappe_nn $mappe_nb
cd $mappe_nn
tar xf ../*norsk_ordbank_nno_2012.tar.gz
cd ../$mappe_nb
tar xf ../*norsk_ordbank_nob_2005.tar.gz
cd ..


# Flytt filene frå undermapper til hovudmappa,
# og skrift samantidig namn, slik at namna
# er like på nynorsk og bokmål.
for fil in *Norsk_ordbank_nno_2012/*.txt
do
  mv "$fil" "$(basename "${fil%_2012.txt}"_nn.txt)"
done
mv -f fullformer_nn.txt fullformsliste_nn.txt # For å ha same namneform som for bokmål
for fil in *Norsk_ordbank_nob_2005/*.txt
do
  mv "$fil" "$(basename "${fil%.txt}"_nb.txt)"
done
rm -f leddanalyse_*.txt


# Filene skal ikkje vera køyrbare …
chmod -x ./*.txt


# Filene er koda som Windows-1252,
# og med DOS/Windows-linjeskift.
# Fiks dette.
tmpfil=$(mktemp)
for fil in *.txt
do
  iconv -f windows-1252 -t utf8 "$fil" -o "$tmpfil"
  mv "$tmpfil" "$fil"
  dos2unix "$fil"
done


# Dei ulike ordbankfilene har innebygd linjenummerkolonnar (!)
# og usystematisk sortering. Dette gjer at «diff»-ar mellom
# ulike versjonar vert ubrukelege. Fjern derfor første kolonne
# og gå over til ei meir fornuftig sortering.
#
# Når me sorterer, må me ta ein omveg om ei mellombels fil,
# og må passa på at me ikkje sorterer vekk overskriftslinja.
sorter() {
  tmpfil=$(mktemp)
  cut -d'	' -f2- "$1" > "$tmpfil"
  overskrift=$(head -1 "$tmpfil")
  echo "$overskrift" > "$1"
  tail -n +2 "$tmpfil" | sort --stable -t'	' "${@:2}" >> "$1"
}

# Dei ulike filene treng ulik sortering
for fil in paradigme_boying*.txt
do
  sorter "$fil" -k 1n,1 -k 1,1 -k 2n,2
done

for fil in paradigme_n*.txt
do
  sorter "$fil" -k 1n,1 -k 1,1
done

for fil in lemma_n*.txt
do
  sorter "$fil" -k 1n
done

for fil in lemma_paradigme*.txt
do
  sorter "$fil" -k 1n,1 -k 2n
done

for fil in fullformsliste*.txt
do
  sorter "$fil" -k 1n,1 -k 4n,4 -k 5n,5
done


# Fjern dei utpakka mappene og filene der.
rmdir "$mappe_nn" "$mappe_nb"

