Commit 594c423f authored by Jerome Chauveau's avatar Jerome Chauveau
Browse files

amélioration max.sh - vérification des doubles config

parent 685c6f20
Loading
Loading
Loading
Loading
+75 −139
Original line number Diff line number Diff line
@@ -9,9 +9,11 @@ MAX_TEI_DEMO_VERION_NUMBER="v1.2"
MAX_TEI_DEMO_VERSION="max-tei-demo-"$MAX_TEI_DEMO_VERION_NUMBER
MAX_EAD_DEMO_VERION_NUMBER="v1.0"
MAX_EAD_DEMO_VERSION="max-ead-demo-"$MAX_EAD_DEMO_VERION_NUMBER
#lorsque gitlab sera en version 14.9 ou + : https://host/namespace/project/-/releases/permalink/latest
TEI_DEMO_RELEASE_URL="https://git.unicaen.fr/pdn-certic/max-tei-demo/-/archive/"$MAX_TEI_DEMO_VERION_NUMBER"/"$MAX_TEI_DEMO_VERSION".zip"
EAD_DEMO_RELEASE_URL="https://git.unicaen.fr/pdn-certic/max-ead-demo/-/archive/"$MAX_EAD_DEMO_VERION_NUMBER"/"$MAX_EAD_DEMO_VERSION".zip"
SAXON_HE_URL=https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/11.2/Saxon-HE-11.2.jar
FOP_URL=https://files.basex.org/modules/org/basex/modules/fop/FOP.jar


dependency_test(){
  result=$(command -v $1)
@@ -24,12 +26,31 @@ dependency_test(){
  fi
}

install_jar_in_libs(){
  jar_url=$1
  jar_name=`basename $jar_url`
  basex_libs=`which $BASEX_BIN`
  d=`dirname $basex_libs`/../lib
  if [ ! -f $d/$jar_name ]
  then
    wget $jar_url
    ret_code=$?
    if [ $ret_code -gt 0 ]
    then
        echo 'Cannot install jar '$jar_url
        exit -1
    else
      mv $jar_name $d
    fi
  fi
  echo $jar_name': ok'
}


echo "---------------------------"
echo "  MaX - Utilities - "$MAX_VERSION
echo "---------------------------"


dependencies=(wget npm xmllint)

for bin in ${dependencies[@]}
@@ -53,6 +74,12 @@ else
   fi
fi

#checks if fop & saxon he jar are in basex libs
echo ""
install_jar_in_libs $SAXON_HE_URL
install_jar_in_libs $FOP_URL
echo ""

display_usage(){
    echo ""
    echo ""
@@ -151,10 +178,11 @@ db_project_feed(){
   ret_code=$?
   if [ $ret_code -gt 0 ]
    then echo "Cannot insert data in DB. Is your BaseX running on "$PORT" ?"
    rm feed.txt
    return 1
   else
    rm feed.txt
    echo "INFO: The "$1" DB was successfully created."
    rm feed.txt
    return 0
   fi
}
@@ -167,11 +195,29 @@ db_demo_feed(){
    return $ret_code
}

#is project already declared in main config file ?
check_project_xinclude(){
  edition_name=$1
  a=$($BASEX_BIN -bprojectId=$edition_name -bmaxPath=$DIRECTORY/.. $DIRECTORY"/xq/check_config_exists.xq")
  if [ $a == 0 ]
  then
    echo 'Edition '$edition_name' is already declared in configuration file. Remove it before installing your edition.'
    echo 'Installation stopped !'
    return 1
  fi
  return 0
}

# demo edition deployment
install_demo(){
  url=$1
  zip_name=$2
  edition_name=$3
  check_project_xinclude $edition_name
  if [ $? -gt 0 ]
  then
    exit -1
  fi

  if [ ! -d $DIRECTORY/../editions ]
  then
@@ -186,7 +232,7 @@ install_demo(){
  fi

  cd $DIRECTORY/../editions
  echo "Downloading Max Demo resources at "$urlcd .
  echo "Downloading Max Demo resources at "$url .
  wget $url
  getResult=$?
  if [ $getResult -ne 0 ]
@@ -199,6 +245,15 @@ install_demo(){
  rm $zip_name.zip
  cd $DIRECTORY

  db_demo_feed $edition_name

  ret_code=$?
  if [ $ret_code -gt 0 ]
    then echo $edition_name": installation failed"
    rm -rf $DIRECTORY/../editions/$edition_name
    return 1
  fi

  #enable  plugins
  if [ $edition_name == 'max_tei_demo' ]
  then
@@ -224,17 +279,8 @@ install_demo(){
    format_configuration_file
  fi


  db_demo_feed $edition_name

  ret_code=$?
  if [ $ret_code -gt 0 ]
    then echo $edition_name": installation failed"
    return 1
  else
  echo "INFO: The edition "$edition_name" was successfully deployed."
  return 0
  fi

}

@@ -243,9 +289,23 @@ deploy_new_edition(){
  read -e -p "Project ID ? " project_id
  read -e -p "XML Project type (tei, ead, ...) ? " xmlns
  read -e -p "Database path ? " db_path

  check_project_xinclude $project_id
  if [ $? -gt 0 ]
  then
    exit -1
  fi

  new_edition_build $project_id $db_path $xmlns
  read -e -p "XML sources path ? " data_path
  db_project_feed $db_path $data_path
  ret_code=$?
  if [ $ret_code -gt 0 ]
  then
    echo 'Process failed'
    return -1
  fi

  mkdir -p $DIRECTORY/../editions/$project_id/fragments/fr
  mkdir $DIRECTORY/../editions/$project_id/xq
  mkdir $DIRECTORY/../editions/$project_id/ui
@@ -341,11 +401,6 @@ then
    cp  $DIRECTORY/../configuration/configuration.dist.xml $DIRECTORY/../configuration/configuration.xml
fi

#NEW_EDITION_MODE='-n'
#DEMO_MODE='-d'
#INIT_MODE='-i'

#CHOOSEN_MODE=''

while [[ "$#" -gt 0 ]]; do
    case $1 in
@@ -353,7 +408,6 @@ while [[ "$#" -gt 0 ]]; do
            exit 0;;
        -p) PORT="$2"; shift ;;
        -n) deploy_new_edition;exit 0;;
#        -n|-d|-i) CHOOSEN_MODE="$1"; shift ;;
        -i) init_dev_max;exit 0;;
        --d-tei) install_demo $TEI_DEMO_RELEASE_URL $MAX_TEI_DEMO_VERSION max_tei_demo;exit 0;;
        --d-ead) install_demo $EAD_DEMO_RELEASE_URL $MAX_EAD_DEMO_VERSION max_ead_demo;exit 0;;
@@ -365,121 +419,3 @@ while [[ "$#" -gt 0 ]]; do
    shift
done

if [ -z $CHOOSEN_MODE ]
then
  display_usage
  exit 1
fi




#demo_edition_build(){
#  if [ ! -d $DIRECTORY/../editions ]
#    then
#      echo 'Creates "editions" directory.'
#      mkdir $DIRECTORY/../editions
#    fi
#
#    if [ -d $DIRECTORY/../editions/max_tei_demo ]; then
#      echo "Removes existing demo edition."
#      rm -rf $DIRECTORY/../editions/max_tei_demo
#    fi
#
##    cp -r $DIRECTORY/demo/demo_edition $DIRECTORY/../editions/demo_lorem
##    cp $DIRECTORY/demo/demo_lorem_config_inc.xml $DIRECTORY/../editions/demo_lorem
##    echo "  -> resource files copy: DONE"
#    cd $DIRECTORY/../editions
#    echo "Downloading Max TEI Demo resources"
#
#    wget $TEI_DEMO_RELEASE_URL
#
#    getResult=$?
#    if [ $getResult -ne 0 ]
#    then
#     echo 'MaX demo install error : Cannot fetch '$TEI_DEMO_RELEASE_URL
#     exit -1
#    fi
#    unzip $MAX_TEI_DEMO_VERSION.zip
#    mv $MAX_TEI_DEMO_VERSION max_tei_demo
#    rm $MAX_TEI_DEMO_VERSION.zip
#    cd $DIRECTORY
#
#    #    enable project plugins
#    enable_plugin apparat_critique max_tei_demo
#    enable_plugin breadcrumb max_tei_demo
#    enable_plugin correction max_tei_demo
#    enable_plugin img_viewer max_tei_demo
#    enable_plugin search max_tei_demo
#    enable_plugin tei_pdf max_tei_demo
#    include_project_config max_tei_demo
#
#    if [ $? -ne 0 ]
#    then
#      echo 'Process failed'
#      exit 1
#    else
#      format_configuration_file
#    fi
#}









#if [ $CHOOSEN_MODE == $NEW_EDITION_MODE ]
#then
#    read -e -p "Project ID ? " project_id
#    read -e -p "XML Project type (tei, ead, ...) ? " xmlns
#    read -e -p "Database path ? " db_path
#    new_edition_build $project_id $db_path $xmlns
#    read -e -p "XML sources path ? " data_path
#    db_project_feed $db_path $data_path
#    mkdir -p $DIRECTORY/../editions/$project_id/fragments/fr
#    mkdir $DIRECTORY/../editions/$project_id/xq
#    mkdir $DIRECTORY/../editions/$project_id/ui
#    mkdir $DIRECTORY/../editions/$project_id/ui/css
#    mkdir $DIRECTORY/../editions/$project_id/ui/fonts
#    mkdir $DIRECTORY/../editions/$project_id/ui/i18n
#    mkdir $DIRECTORY/../editions/$project_id/ui/images
#    mkdir $DIRECTORY/../editions/$project_id/ui/js
#    mkdir $DIRECTORY/../editions/$project_id/ui/templates
#    mkdir $DIRECTORY/../editions/$project_id/ui/xsl
#
#    touch $DIRECTORY/../editions/$project_id/ui/css/$project_id.css
#
#    #creates about frag page
#    touch $DIRECTORY/../editions/$project_id/fragments/fr/about.frag.html
#    echo "<section>" > $DIRECTORY/../editions/$project_id/fragments/fr/about.frag.html
#    echo "<h1>À propos</h1>" >> $DIRECTORY/../editions/$project_id/fragments/fr/about.frag.html
#    echo "<p>Modifiez moi dans editions/$project_id/fragments/fr/about.frag.html.</p>" >> $DIRECTORY/../editions/$project_id/fragments/fr/about.frag.html
#    echo "</section>" >> $DIRECTORY/../editions/$project_id/fragments/fr/about.frag.html
#
#    cp $DIRECTORY/menu_default.xml $DIRECTORY/../editions/$project_id/menu.xml
#    if [ $xmlns = 'ead' ]
#    then
#      enable_plugin 'ead_basket'
#      enable_plugin 'side_toc'
#    fi
#    echo ''
#    echo "Project "$project_id" is ready !"
#    exit 0
#fi

#if [ $CHOOSEN_MODE == $DEMO_MODE ]
#then
#    demo_edition_build
#    db_demo_feed max_tei_demo
#    exit 0
#fi

#if [ $CHOOSEN_MODE == $INIT_MODE ]
#then
#    init_dev_max
#    exit 0
#fi
+9 −0
Original line number Diff line number Diff line
(: Check if a project is already declared in the main configuration file:)
declare variable $maxPath external;
declare variable $projectId external;

let $config:= doc($maxPath||'/configuration/configuration.xml')
return
    if($config//edition[@xml:id=$projectId])
    then 0
    else -1