Skip to content
Snippets Groups Projects
mkindex 1.3 KiB
Newer Older
David Byers's avatar
David Byers committed
#!/bin/sh

template=$1
items=$2

en_inverse="\([^e]\|e[^n]\)*"
sv_inverse="\([^s]\|s[^v]\)*"

lang_inverse="\([^<]\|<[^/]\|</[^l]\|</l[^a]\|</la[^n]\|</lan[^g]\|</lang[^>]\)*"

# Make a swedish version without content

extract_language() {
David Byers's avatar
David Byers committed
  lang="$1"
  inverse="$2"
  cat $template | \
      sed "s,<lang id=\"$inverse\">$lang_inverse</lang>,,g" |\
      sed "s,<lang id=\"$lang\">,,g" |\
      sed "s,</lang>,,g" |\
      sed "/<!-- CONTENT -->/ r elisp-client-items.sv" \
David Byers's avatar
David Byers committed
      > index.$lang.html
}


get_lines() {
David Byers's avatar
David Byers committed
    file=$1
    key=$2
    grep -i "^$key=" $file | cut -d= -f2-
}

get_items() {
David Byers's avatar
David Byers committed
    lang=$1
    output="elisp-client-items.$lang"
David Byers's avatar
David Byers committed

    echo > $output
    for file in `grep "^SORT" $items/* | sort -n -t= -r -k 2 | cut -d: -f1` ; do
        if [ -r "$file" -a -z "`grep '^OLD' $file`" ] ; then
           title=`get_lines $file "$lang.TITLE"`
           text=`get_lines $file "$lang.TEXT"`
        fi
        echo '<div class="item">' >> $output
        echo "<h2>$title</h2>" >> $output
        echo "$text" >> $output
        echo "</div>" >> $output
    done
}

TEST=`echo A | sed 's/\(A\|B\)/C/g'`
if [ "$TEST" = "A" ] ; then
    echo "The version of sed on this computer is brain-damaged. Aborting."
    exit 1
fi

David Byers's avatar
David Byers committed
get_items sv
get_items en

extract_language sv "$sv_inverse"
extract_language en "$en_inverse"