/*   -*- coding: utf-8 -*-  */

#include <stdio.h>     /* for printf */
#include <stdlib.h>    /* for exit */
#include "Explor.h"

void generSiteMkdir()
{
  SxmlNode *streamNode;
  SxmlNode *stepNode;
  SxmlNode *listSteps;
  SxmlNode *langNode;
  char     *stream;
  char     *step;
  char     *lang;
  char     *listStepsStr;
  printf("<?dilib file=\"%s/bin/SiteMkdir.sh\" ?>\n", ExplorAreaDir );
  printf ("#!/bin/sh\n\n");
  printf ("RET=`pwd`\n");  
  SxmlReset (ExplorListLang);
  while ((langNode=SxmlNextNode(ExplorListLang)))
    {
      lang=SxmlLeafText(langNode);
      printf ("mkdir %s/Site\n", ExplorAreaDir);
      printf ("mkdir %s/Site/Common\n", ExplorAreaDir);
      printf ("mkdir %s/Site/Common/styles\n", ExplorAreaDir);
      printf ("mkdir %s/Site/Common/php\n", ExplorAreaDir);
      printf ("mkdir %s/Site/Common/icons\n", ExplorAreaDir);
      printf ("mkdir %s/Site/%s\n", ExplorAreaDir, lang);
      printf ("cp $DILIB/css/ExplorFrame.css %s/Site/Common/styles/ExplorFrame.css\n", ExplorAreaDir);

      printf ("cp $DILIB/php/Explor/Explor.php %s/Site/Common/php/. \n", ExplorAreaDir );
      printf ("cp $DILIB/php/Index/Index.php %s/Site/Common/php/. \n",       ExplorAreaDir );
      printf ("cp $DILIB/php/SxmlNode/SxmlNode.php %s/Site/Common/php/. \n", ExplorAreaDir );
      printf ("cp $DILIB/php/Hfd/Hfd.php %s/Site/Common/php/. \n", ExplorAreaDir );
      printf ("cp $DILIB/php/Wicri/Wicri.php %s/Site/Common/php/. \n", ExplorAreaDir );
      printf ("cp $DILIB/php/Tei/TeiExplor.php %s/Site/Common/php/. \n", ExplorAreaDir );

      printf ("cp $DILIB/data/Wicri/interwiki.tab %s/Site/Common/WicriInterwiki.tab \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/LogoDilib.gif  %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/LogoWicriWicriFr.png  %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/Nuvola_apps_important.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/CorpusIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/CurationIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/ExplorationIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/RepositoryIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/ExtractionIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/MergingIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/AnalyseIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/CheckpointIcon.png %s/Site/Common/icons/. \n", ExplorAreaDir );
      printf ("cp $DILIB/data/icons/ExplorTreeRoot.png %s/Site/Common/icons/. \n", ExplorAreaDir );

      printf ("cd %s/Site/%s\n", ExplorAreaDir, lang);
      printf ("ln -s ../Common Common\n");
      printf ("ln -s ../../Data Data\n");
      printf ("cd $RET\n");
      SxmlReset (ExplorListStream);
      while ((streamNode=SxmlNextNode(ExplorListStream)))
	{
	  stream=SxmlLeafText(streamNode );
	  printf ("mkdir %s/Site/%s/%s\n", ExplorAreaDir,lang , stream);
	  printf ("cd %s/Site/%s/%s\n", ExplorAreaDir, lang, stream);
	  printf ("ln -s ../../Common Common\n");
	  printf ("ln -s ../../../Data Data\n");
	  printf ("cd $RET\n");
	  listStepsStr=ExplorGetFromDictK3("Area", stream, "listSteps" );
	  listSteps=SxmlFromString(listStepsStr);
	  SxmlReset(listSteps);
	  while ((stepNode=SxmlNextNode(listSteps)))
	    {
	      step=SxmlLeafText(stepNode );
	      printf ("mkdir %s/Site/%s/%s/%s\n", ExplorAreaDir, lang, stream, step );
	      printf ("cd %s/Site/%s/%s/%s\n", ExplorAreaDir, lang, stream, step);
	      printf ("ln -s ../../../Common Common\n");
	      printf ("ln -s ../../../../Data Data\n");
	      printf ("cd $RET\n");
	    }
	}
    }
  printf ("cd $RET\n");
} 


extern char *optarg;
extern int   optind;
int getopt();

int main (int argc, char **argv) {
   int cOption;
   char *tabList;
   char *pathParamFile;
   while((cOption=getopt(argc,argv,"t:"))!=EOF)
     {switch (cOption)
	 {
	 case 't':
	   pathParamFile=optarg;
	   break;
	 }
     }

   ExplorParamInit(pathParamFile);
   generSiteMkdir();
   exit(0);
}
