#!/bin/sh

 # g_plug
 # ======

 # This file is part of Gerolf Markup Shredder,
 # written by G. D. Brettschneider (1999-2006).

 # GMSdateG_PLUG=20060927

 # Prologue: ==================================================================

 # Not running:

 if [ "$GMS_SHELL" = "" ]; then
   echo "This is Gerolf Markup Shredder (g_plug)."
   exit
 fi 
 
 # Debug: ---------------------------------------------------------------------

 if [ "$GMS_DEBUG" = "X" -o "$GMS_DEBUG" = "Y" ]; then
   source "$GMS_SHELL/l_banner" -debug g_plug $1 $2 $3 $4
 elif  [ "$GMS_DEBUG" = "Z" ]; then
   echo " g_plug ($1) ($2) ($3) ($4) ($5) ($6) ($7) ($8) ($9)" >> "$Z"
 fi 

 # Chapters: ==================================================================

 # Not defined:

 if [ "$1" = "" ]; then source "$GMS_SHELL/l_banner" -no_action g_plug

 # Rebuild list of plug-in modules: -------------------------------------------
 
 elif [ "$1" = "-rebuild" ]; then
   plug="$GMS_SETTING/plugin.cfg"
   str="%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
   # Display info:
   if [ "$2" != "-quiet" ]; then
     export REPLY_BANNER=15
     export REPLY_TEXT=0
     export REPLY_OFFSET=0
     export REPLY_SIZE=16
       "$GMS_BINARIES/reply" -banner 15 "Configuring:"
     export REPLY_OFFSET=14
     export REPLY_SIZE=68
       "$GMS_BINARIES/reply" -banner 15 "  $GMS_SETTING/plugin.cfg"
   fi
   # Initial data:
     echo " % plugin.cfg" > "$plug"
     echo " % ==========" >> "$plug"
     echo >> "$plug"
     echo " % This TeX file was auto-" >> "$plug"
     echo " % generated by Gerolf Markup Shredder," >> "$plug"
     echo " % written by G. D. Brettschneider (1999-2003)," >> "$plug"
     echo -n " % on ">> "$plug"
     date >> "$plug"
     echo " % All rights reserved." >> "$plug"
     echo " % Send corrections to: MarkupShredder@Gerolf.de" >> "$plug"
     echo " % Subject: GMS TeX macros (module loader)" >> "$plug"
     echo >> "$plug"
     echo " % This file serves for loading all GMS" >> "$plug"
     echo " % modules that could be found in the" >> "$plug"
     echo " % appropriate plug-in directories." >> "$plug"
     echo " % If you have reason to edit this file," >> "$plug"
     echo " % change its name to 'myplugin.cfg'." >> "$plug"
     echo " % The recommended way to add TeX macro files" >> "$plug"
     echo " % to GMS, however, is to \input them in" >> "$plug"
     echo " % 'prologue.cfg' or 'epilogue.cfg'." >> "$plug"
     echo >> "$plug"
     echo " $str$str" >> "$plug"
     echo >> "$plug"
     echo " % Initial data:" >> "$plug"
     echo "   \def \GMSdate {$GMS_DATE}" >> "$plug"
     echo "   \def \GMSversion {$GMS_VERSION}" >> "$plug"
     echo "   \def \GMScodepage {$GMS_CODEPAGE}" >> "$plug"
     echo "   \def \GMSdebug {$GMS_DEBUG}" >> "$plug"
     echo >> "$plug"
     echo " $str$str" >> "$plug"
     echo >> "$plug"
   # Modules:
     echo " \hyphenmessage" >> "$plug"
     echo " \message {Module loader.}" >> "$plug"
     echo " \fillmessage 42{modules}5" >> "$plug"
     echo >> "$plug"
   # Fonts:
     echo "   \fillmessage 6a{font}6" >> "$plug"
     echo "     \MAPload" >> "$plug"
     echo "     \hyphenmessage" >> "$plug"
     echo "     \message {( font.map}" >> "$plug"
     echo "     \hyphenmessage" >> "$plug"
     echo "     \message {These names can be used as font face or}" >> "$plug"
     echo "     \echo {font-family style names in markup files:}" >> "$plug"
     echo "     \MAPfamilyshow" >> "$plug"
     echo "     \message {)}" >> "$plug"
     echo "   \fillmessage 6-{/font}5" >> "$plug"
     echo >> "$plug"
   # Kerning tables:
     echo "   \fillmessage 6b{kerning}3" >> "$plug"
     cd "$GMS_ROOT/data/krn"
     for i in *.krn; do 
       echo "     \KERNINGparseline ($i)\relax" >> "$plug"
     done
     echo "     \KERNINGloadtables" >> "$plug"
     echo "   \fillmessage 6-{/kerning}2" >> "$plug"
     echo >> "$plug"
   # Hyphenation patterns:
     cd "$GMS_ROOT/tex/hyphen"
     echo "   \fillmessage 6c{language}2" >> "$plug"
     for i in *.tex; do
       echo "       \LANGUAGEadd $i" >> "$plug"
     done
     echo "     \LANGUAGEloadpatterns" >> "$plug"
     echo "     \message {More pattern files are available at" >> "$plug"
     echo "       http://www.ctan.org/tex-archive/language//}" >> "$plug"
     echo "   \fillmessage 6-{/language}1" >> "$plug"
     echo >> "$plug"
   # Unicode rows:
     echo "   \fillmessage 6d{unicode}3" >> "$plug"
     cd "$GMS_ROOT/data/row" 
     for i in *.row; do
       echo "       \UNICODEadd $i" >> "$plug"
     done
     echo "     \UNICODEslotsload" >> "$plug"
     echo "   \fillmessage 6-{/unicode}2" >> "$plug"
     echo >> "$plug"
   # Entity names:
     echo "   \fillmessage 6e{entity}4" >> "$plug"
     cd "$GMS_ROOT/data/ent"
     for i in *.ent; do
       echo "       \ENTITYadd $i" >> "$plug"
     done
     echo "     \ENTITYnamesload" >> "$plug"
     echo "     \ENTITYnamesshow" >> "$plug"
     echo "   \fillmessage 6-{/entity}3" >> "$plug"
     echo >> "$plug"
   # Glyph names:
     echo "   \fillmessage 6f{glyph}5" >> "$plug"
     cd "$GMS_ROOT/data/gly"
     for i in *.gly; do 
       echo "       \GLYPHSadd $i" >> "$plug"
     done
     echo "     \GLYPHSnamesload" >> "$plug"
     echo "   \fillmessage 6-{/glyph}4" >> "$plug"
     echo >> "$plug"
   # Codepages:
     echo "   \fillmessage 6g{codepage}2" >> "$plug"
     cd "$GMS_ROOT/data/cp"
     for i in *.txt; do
       echo "       \CODEPAGEadd $i" >> "$plug"
     done
     echo "     \CODEPAGEloadthem" >> "$plug"
     echo "     \CODEPAGEencwrite" >> "$plug"
     echo "     \expandafter \CODEPAGEenable \CODEPAGE \relax" >> "$plug"
 ##  echo "     \UNICODEencswrite\relax" >> "$plug"
     echo "   \fillmessage 6-{/codepage}1" >> "$plug"
     echo >> "$plug"
     echo " \fillmessage 4-{/modules}3" >> "$plug"
     echo " \endinput" >> "$plug"
   cd "$GMS_BINARIES"
   unset plug

 # Build plugin.cfg, but consider myplugin.cfg: -------------------------------

 elif [ "$1" = "-build" ]; then
   if [ -f "$GMS_SETTING/myplugin.cfg" ]; then
   # If myplugin.cfg exists, copy it to plugin.cfg:
     cp "$GMS_SETTING/myplugin.cfg" "$GMS_SETTING/plugin.cfg"
   else
   # Write new plugin.cfg:
     source "$GMS_SHELL/g_plug" -rebuild g_plug $1
   fi

 # Remove plugin.cfg: ---------------------------------------------------------

 elif [ "$1" = "-remove" ]; then
   # If myplugin.cfg and plugin.cfg exist, delete plugin.cfg:
     if [ -f "$GMS_SETTING/myplugin.cfg" \
       -a -f "$GMS_SETTING/plugin.cfg" ]; then
       rm "$GMS_SETTING/plugin.cfg"
     fi

 # Not found: -----------------------------------------------------------------

 else
   source "$GMS_SHELL/l_banner" -no_action g_plug $1   
 fi
