#!/bin/bash
# hent-ordbank – Hent, pakk ut og gjer ordbankfilene klare til bruk.
#
# Copyright © 2008, 2009, 2010, 2012, 2018, 2019 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/show?serial=oai%3Anb.no%3Asbr-41&lang=nn
# og
#   https://www.nb.no/sprakbanken/show?serial=oai%3Anb.no%3Asbr-5&lang=nb


# Pakk ut filene (til undermapper).
tar xf *norsk_ordbank_nno_2012.tar.gz
tar xf *norsk_ordbank_nob_2005.tar.gz


# 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
rm -f norsk_ordbank_argstr.txt_nn.txt
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
# argstr-fila er alt rett koda, så unngå rekodinga nedanfor
mv norsk_ordbank_argstr_nb.txt norsk_ordbank_argstr.tmp
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
mv norsk_ordbank_argstr.tmp norsk_ordbank_argstr.txt # Sjå kommentar ovanfor


# 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 *Norsk_ordbank_nno_2012
rmdir *Norsk_ordbank_nob_2005
