Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for platos/_scripts/create-document between version 1.12 and 1.13

version 1.12, 2005/05/30 21:58:20 version 1.13, 2005/06/11 01:46:58
Line 9 
Line 9 
 # All rights reserved.  # All rights reserved.
 #  #
   
 # $Platon: Platon.SK/office/_scripts/create-document,v 1.11 2005/05/29 00:02:47 rajo Exp $  # $Platon: platos/_scripts/create-document,v 1.12 2005/05/30 21:58:20 rajo Exp $
   
   # Uncomment following 2 lines for debugging
   #DEBUG="echo"
   #NODEBUG=":"
   
 DATE_SHORT="`date '+%y-%m-%d'`";  DATE_SHORT="`date '+%y-%m-%d'`";
 DATE_LONG="`date '+%Y-%m-%d'`";  DATE_LONG="`date '+%Y-%m-%d'`";
 DATE=$DATE_LONG;  DATE=$DATE_LONG;
 YEAR="`date '+%Y'`";  YEAR="`date '+%Y'`";
   
 MYSELF="Platon.SK/office/_scripts/create-document"  PERCENT_SIGN="%" # only for testing sed
   HERE=`pwd`
   
   MYSELF="platos/_scripts/create-document"
   
   dirname="$1"
   filename="$2"
   model="$3"
   STYLESHEET="$4"
   PREFIX="$5"
   APPEND_DIRNAME="$6"
   
   usage()
   { # {{{
           echo
           echo "Usage     [path] [filename] [naming schema] [stylesheet] [prefix] [append dirname?]"
           echo
           exit 1
   } # }}}
   
   generate_sed_cmd()
   { # {{{
           cmd=""
           for key in $*; do
                   cmd="$cmd s%@$key@%"`echo "${!key}" | sed -e 's/%/\\\\%/g;' `"%g;";
           done
           echo "$cmd"
   } # }}}
   
 if [ -z "$TOP_DIR" ]; then  if [ -z "$TOP_DIR" ]; then
         echo '$TOP_DIR is empty, using current directory...'          echo '$TOP_DIR is empty, using current directory...'
         TOP_DIR="."          TOP_DIR="."
 fi  fi
 TEMPLATES="$TOP_DIR/_templates"  
   
 if [ -z "$1" ]; then  # document path {{{
   if [ -z "$dirname" ]; then
         echo -en "Enter name of directory for document withouth date string []: "          echo -en "Enter name of directory for document withouth date string []: "
         read dirname          read dirname
         if [ -z "$dirname" ]; then          if [ -z "$dirname" ]; then
                 echo "Can't create document with empty name"                  echo "Can't create document with empty name"
                 exit 1;                  exit 1;
         fi          fi
 else  
         dirname="$1"  
 fi  fi
   # }}}
   
 if [ -z "$2" ]; then  # document filename {{{
   if [ -z "$filename" ]; then
         echo -en "Enter name of file withouth date string and extension []: "          echo -en "Enter name of file withouth date string and extension []: "
         read filename          read filename
         if [ -z "$filename" ]; then          if [ -z "$filename" ]; then
                 echo "Can't create document with empty name"                  echo "Can't create document with empty name"
                 exit 1;                  exit 1;
         fi          fi
 else  
         filename="$2"  
 fi  fi
   filename=${filename%.tex}
   
 if [ -z "$3" ]; then  # create available options:
         DIRNAME='';  file=`basename $filename`
         FILENAME='';  f_dir=`dirname $filename`
   
         while [ -z "$DIRNAME" -o -z "$FILENAME" ]; do  dirname="$dirname/$f_dir"
                 echo "Available filename models:";  dirname=`$TOP_DIR/_scripts/path-cleanup "$dirname" | sed -e 's%^/%%g;'`
                 echo "  [P] Prints *.tex files listing.";  
                 echo "  [D] Toggle date format"  d_dir=`dirname  $dirname`
                 echo "  [1] $DATE-$dirname/$DATE-$filename.tex"  l_dir=`basename $dirname`
                 echo "  [2] $DATE-$dirname/$filename-$DATE.tex"  
                 echo "  [3] $DATE-$dirname/$filename.tex"  out=""
                 echo "  [4] $dirname/$DATE-$filename.tex"  out_1="$d_dir/$DATE-$l_dir/$DATE-$file.tex"
                 echo "  [5] $dirname/$filename-$DATE.tex"  out_2="$d_dir/$DATE-$l_dir/$file-$DATE.tex"
                 echo "  [6] $dirname/$filename.tex"  out_3="$d_dir/$DATE-$l_dir/$file.tex"
   out_4="$d_dir/$l_dir/$DATE-$file.tex"
                 echo -en "Please select action or choose filename model:";  out_5="$d_dir/$l_dir/$file-$DATE.tex"
                 read model  out_6="$d_dir/$l_dir/$file.tex"
   # }}}
                 case "$model" in  
                         P*)  # which naming sheme? {{{
                                 ls -1 "$dirname/"*.tex;  model=`echo $model | sed -e 's%^\(.\).*%\1%g;'`
                                 ;;  
                         D*)  which_out="out_$model"
                                 echo -n "Changed date format from '$DATE' to";  out="${!which_out}"
                                 if [ "$DATE" = "$DATE_LONG" ]; then  # }}}
                                         DATE=$DATE_SHORT;  
                                 else  #
                                         DATE=$DATE_LONG;  # Choose filename
                                 fi  # {{{
                                 echo " '$DATE'.";  while [ -z "$out" ]; do
                                 ;;  
                         1*)          out=""
                                 DIRNAME="$DATE-`basename \"$dirname\"`"          out_1="$d_dir/$DATE-$l_dir/$DATE-$file.tex"
                                 FILENAME="$DATE-`basename \"$dirname\"`"          out_2="$d_dir/$DATE-$l_dir/$file-$DATE.tex"
                                 ;;          out_3="$d_dir/$DATE-$l_dir/$file.tex"
                         2*)          out_4="$d_dir/$l_dir/$DATE-$file.tex"
                                 DIRNAME="$DATE-`basename \"$dirname\"`"          out_5="$d_dir/$l_dir/$file-$DATE.tex"
                                 FILENAME="`basename \"$filename\"`-$DATE"          out_6="$d_dir/$l_dir/$file.tex"
                                 ;;  
                         3*)          echo "Available filename models:";
                                 DIRNAME="$DATE-`basename \"$dirname\"`"          echo "  [P] Prints *.tex files listing.";
                                 FILENAME="`basename \"$filename\"`"          echo "  [D] Toggle date format"
                                 ;;          for model in 1 2 3 4 5 6; do
                         4*)                  which_out="out_$model"
                                 DIRNAME="`basename \"$dirname\"`"                  echo "  [$model] ${!which_out}"
                                 FILENAME="$DATE-`basename \"$filename\"`"  
                                 ;;  
                         5*)  
                                 DIRNAME="`basename \"$dirname\"`"  
                                 FILENAME="`basename \"$filename\"`-$DATE"  
                                 ;;  
                         6*)  
                                 DIRNAME="`basename \"$dirname\"`"  
                                 FILENAME="`basename \"$filename\"`"  
                                 ;;  
                         *)  
                                 echo "Unsupported model: $model";  
                                 ;;  
                 esac  
         done          done
   
 else  
         model="$3"  
 fi  
   
 if [ -f "$FILENAME.tex" ]; then          echo -en "Please select action or choose filename model []: ";
           read model
   
           # take first character from user input
           model=`echo $model | sed -e 's%^\(.\).*%\1%g;'`
   
           case "$model" in
                   [pP])
                           echo "-----<% Start of listing files %>-----"
                           ls -1 $d_dir/$DATE-$l_dir/*.tex $d_dir/$l_dir/*.tex 2> /dev/null ;
                           echo "-----<%  End of listing files  %>-----"
                           ;;
                   [dD])
                           echo -n "Changed date format from '$DATE' to";
                           if [ "$DATE" = "$DATE_LONG" ]; then
                                   DATE=$DATE_SHORT;
                           else
                                   DATE=$DATE_LONG;
                           fi
                           echo " '$DATE'.";
                           ;;
                   [1-6])
                           which_out="out_$model"
                           out="${!which_out}"
                           ;;
                   *)
                           echo "Unsupported model: $model";
                           ;;
           esac
   done
   # }}}
   
   dirname=`dirname   $out`
   filename=`basename $out`
   
   if [ -f "$out" ]; then
         echo          echo
         echo "Document '$NAME' already exists, please use another name"          echo "Document '$NAME' already exists, please use another name"
         exit 1;          exit 1;
 fi  fi
   
 echo "Creating document '$DIRNAME/$FILENAME'"  filename=${filename%.tex}
 mkdir -p "$DIRNAME"  FILENAME=$filename
   
   if [ -z "$STYLESHEET" ]; then
           echo -en "Please choose stylesheet [platon]: ";
           read STYLESHEET
           STYLESHEET="${STYLESHEET:-platon}"
   fi
   
   if [ -z "$PREFIX" ]; then
           echo -en "Please specify prefix of your documents if you wish to use it: ";
           read PREFIX
   fi
   
   if [ -z "$APPEND_DIRNAME" ]; then
           echo -en "Append directory name to output files? ";
           read APPEND_DIRNAME
   fi
   
   echo "Creating document '$out'"
   $DEBUG mkdir -p "$dirname"
   
 echo "Creating files"  #
 for i in Makefile .cvsignore; do  # Create recursive Makefiles, SUBDIRS, .cvsignore etc...
         file="$DIRNAME/$i"  # {{{
         if [ -f "$file" ]; then  pathdir=""
                 echo "File '$file' already exists!"  echo "  STEP 1: Creating directory structure:";
   for DIRNAME in `echo "$dirname" | sed 's%^\./%%g; s%/% %g;'`; do
           $NODEBUG cd $DIRNAME
           updir="$pathdir"
           pathdir="$pathdir/$DIRNAME"
           TOP_DIR="$TOP_DIR/.."
           TEMPLATES="$TOP_DIR/_templates"
           STYLESHEET_DIR="$TOP_DIR/_stylesheets/$STYLESHEET"
   
           for file in Makefile .cvsignore; do
                   if [ -f "$file" ]; then
                           echo "    File '.$pathdir/$file' already exists, skipping..."
                   else
                           echo "    Creating file '.$pathdir/$file'"
                           $NODEBUG sed -e "`generate_sed_cmd APPEND_DIRNAME PREFIX STYLESHEET DATE YEAR TOP_DIR STYLESHEET_DIR DIRNAME FILENAME PERCENT_SIGN`" \
                                   "$TEMPLATES/$file" > "$file"
                   fi
           done
   
           # check directory name is not already there
           if [ "` grep -E \"^$DIRNAME\$\" ../SUBDIRS 2>/dev/null `" ]; then
                   echo "    Checking '$DIRNAME' in .$updir/SUBDIRS file.";
         else          else
                 sed -e "s%@DATE@%$DATE%g; s%@YEAR@%$YEAR%g; s%@TOP_DIR@%../$TOP_DIR%g; s%@DIRNAME@%$DIRNAME%g; s%@FILENAME@%$FILENAME%g; " \                  echo "    Adding '$DIRNAME' into .$updir/SUBDIRS file.";
                         "$TEMPLATES/$i" > "$DIRNAME/$i"                  $NODEBUG echo "# Added by $MYSELF, $DATE_LONG" >> ../SUBDIRS;
                   $NODEBUG echo "$DIRNAME" >> ../SUBDIRS;
         fi          fi
   
 done  done
   # }}}
   
   #
   # now we are in directory, where document should by located
   #
   
 sed -e "s%@DATE@%$DATE%g; s%@YEAR@%$YEAR%g; s%@FILENAME@%$FILENAME%g;" \  echo "  STEP 2: Creating document .$pathdir/$filename.tex.";
         "$TEMPLATES/template.tex" > "$DIRNAME/$FILENAME.tex"  $NODEBUG sed -e "`generate_sed_cmd APPEND_DIRNAME PREFIX STYLESHEET DATE YEAR TOP_DIR STYLESHEET_DIR DIRNAME FILENAME PERCENT_SIGN`" \
           "$STYLESHEET_DIR/template.tex" > "$filename.tex"
   
   echo "  STEP 3: Adding '$filename.pdf' into .$pathdir/pdf_OUTPUT file.";
   $NODEBUG echo "# Added by $MYSELF, $DATE_LONG" >> pdf_OUTPUT;
   $NODEBUG echo "$filename.pdf" >> pdf_OUTPUT;
   
   echo "  STEP 4: Adding '$filename.ps' into .$pathdir/ps__OUTPUT file.";
   $NODEBUG echo "# Added by $MYSELF, $DATE_LONG" >> ps__OUTPUT;
   $NODEBUG echo "$filename.ps" >> ps__OUTPUT;
   
   echo "  STEP 5: Adding '$filename.html' into .$pathdir/htm_OUTPUT file.";
   $NODEBUG echo "# Added by $MYSELF, $DATE_LONG" >> htm_OUTPUT;
   $NODEBUG echo "$filename.html" >> htm_OUTPUT;
   
   echo "  STEP 6: Adding '$filename.rtf' into .$pathdir/rtf_OUTPUT file.";
   $NODEBUG echo "# Added by $MYSELF, $DATE_LONG" >> rtf_OUTPUT;
   $NODEBUG echo "$filename.rtf" >> rtf_OUTPUT;
   
 echo "Updating building system:";  echo "Now you have to add files in directory '.$pathdir' into CVS and commit them."
 # check directory name is not already there  
 if [ "` grep -E \"^$DIRNAME\$\" SUBDIRS `" ]; then  
         echo "  STEP 1: Checking '$DIRNAME' in SUBDIRS file.";  
 else  
         echo "  STEP 1: Adding '$DIRNAME' into SUBDIRS file.";  
         echo "$DIRNAME" >> SUBDIRS;  
 fi  
   
 echo "  STEP 2: Adding '$FILENAME.pdf' into $DIRNAME/pdf_OUTPUT file.";  
 echo "# Added by $MYSELF, $DATE_LONG" >> "$DIRNAME/pdf_OUTPUT";  
 echo "$FILENAME.pdf" >> "$DIRNAME/pdf_OUTPUT";  
   
 echo "  STEP 3: Adding '$FILENAME.ps' into $DIRNAME/ps__OUTPUT file.";  
 echo "# Added by $MYSELF, $DATE_LONG" >> "$DIRNAME/ps__OUTPUT";  
 echo "$FILENAME.ps" >> "$DIRNAME/ps__OUTPUT";  
   
 echo "  STEP 4: Adding '$FILENAME.html' into $DIRNAME/htm_OUTPUT file.";  
 echo "# Added by $MYSELF, $DATE_LONG" >> "$DIRNAME/htm_OUTPUT";  
 echo "$FILENAME.html" >> "$DIRNAME/htm_OUTPUT";  
   
 echo "Now you have to add files in directory '$DIRNAME' into CVS and commit them."  
 echo "  STEP 4: Adding '$FILENAME.rtf' into $DIRNAME/rtf_OUTPUT file.";  
 echo "# Added by $MYSELF, $DATE_LONG" >> "$DIRNAME/rtf_OUTPUT";  
 echo "$FILENAME.rtf" >> "$DIRNAME/rtf_OUTPUT";  
   
 echo "Now you have to add files in directory '$DIRNAME' into CVS and commit them."  # required, if script is sourced by current shell
   cd $HERE
   
 # vim: ft=sh  # vim: ft=sh
   # vim600: fdm=marker fdc=3 fdl=0
   

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top