Continued:
[jprojects-scripts.git] / .jprojects.sh
index 3b83d3db25743602a802f7ae62c73cb976d1c505..156bbd3825d226f6273602716e6174597d7fa82d 100644 (file)
@@ -1,48 +1,92 @@
 #!/bin/bash
 
+# Tools repository (this)
+THIS="jprojects-scripts"
+
 # Libraries and EJBs
-LIST="jcore jcoreee \
+LIBRARIES="jcore-utils jcore jcoreee \
        jcore-logger-lib jcore-logger-ejb \
        jcountry-core jcountry-lib \
        jphone-core jphone-lib \
-       jcontacts-core jcontacts-business-core jcontacts-lib \
+       jcontacts-core jcontacts-lib \
+       jcontacts-business-core jcontacts-business-lib \
        juser-core juser-lib \
-       jaddressbook-core \
-       jletter-core jletter-lib jletter-ejb \
-       jaddressbook-core \
+       juser-login-core juser-login-lib \
+       juser-activity-core juser-activity-lib \
+       jletter-core jletter-lib \
+       jaddressbook-core jaddressbook-lib \
+       jaddressbook-share-core jaddressbook-share-lib \
        jmailer-ee \
        jcore-swing \
        jcustomer-core jcustomer-lib \
-       jshop-core jshop-ee-lib jshop-ejb \
-       jshop-receipt-lib jshop-receipt-ejb"
+       jbonuscard-core jbonuscard-lib \
+       jproduct-core jproduct-lib \
+       jshop-core jshop-lib \
+       jshop-receipt-core jshop-receipt-lib"
+
+# Base application names (all)
+BASE_APPLICATION_NAMES="addressbook jfinancials jjobs pizzaservice"
 
 # Applications and their special libs/EJBs
-LIST="${LIST}
-       pizzaservice-lib pizzaservice-mailer pizzaservice-ejb pizzaservice pizzaservice-swing pizzaservice-war \
-       jjobs-lib jjobs-mailer jjobs-ejb jjobs jjobs-war \
-       jratecalc-lib jratecalc-mailer jratecalc-ejb jratecalc jratecalc-war \
-       addressbook-lib addressbook-mailer addressbook-ejb addressbook addressbook-war addressbook-uml"
+APPLICATIONS="pizzaservice-core pizzaservice-lib pizzaservice-mailer-ejb pizzaservice-mailer-lib pizzaservice-ejb pizzaservice-swing \
+       jjobs-core jjobs-lib jjobs-mailer-ejb jjobs-mailer-lib jjobs-ejb jjobs-war jjobs \
+       jfinancials-core jfinancials-lib jfinancials-mailer-ejb jfinancials-mailer-lib jfinancials-ejb jfinancials-war jfinancials
+       addressbook-core addressbook-lib addressbook-mailer-ejb addressbook-mailer-lib addressbook-uml"
+
+# Unmaintained, but maybe not broken
+UNMAINTAINED="addressbook-ejb addressbook-war addressbook "
+
+# Company-specific projects
+COMPANY_PROJECTS=""
 
-# Tools repository
-LIST="${LIST} jprojects-scripts"
+# Broken (needs fixing)
+BROKEN="addressbook-swing jfinancials-swing pizzaservice-war pizzaservice"
 
-# BROKEN:
-LIST="${LIST} addressbook-swing"
+# Compile list
+ALL_PROJECTS="${THIS} ${LIBRARIES} ${APPLICATIONS} ${COMPANY_PROJECTS} ${UNMAINTAINED} ${BROKEN}"
 
 # Own home directory
 declare -r JPROJECTS_HOME="${PWD}"
 
-# ant binary
-ANT_BIN=`which ant`
+# All programs
+ANT_BIN=$(which ant 2>/dev/null)
+SCP_BIN=$(which scp 2>/dev/null)
+SSH_BIN=$(which ssh 2>/dev/null)
+
+# Check binary
+if [ -z "${ANT_BIN}" ]
+then
+       echo "$0: Cannot find ANT binary."
+       exit 1
+elif [ ! -x "${ANT_BIN}" ]
+then
+       echo "$0: '${ANT_BIN}' is not executable!"
+       exit 1
+elif [ -z "${SCP_BIN}" ]
+then
+       echo "$0: Cannot find SCP binary."
+       exit 1
+elif [ -z "${SSH_BIN}" ]
+then
+       echo "$0: Cannot find SSH binary."
+       exit 1
+fi
 
 # Test on .git availability"
-for project in ${LIST}; do
+LIST=""
+for project in ${ALL_PROJECTS}; do
        if [ ! -d "${project}" ]
        then
-               echo "$0: Project '${project}' not created."
+               echo "$0: WARNING: Project '${project}' not created."
        elif [ ! -f "${project}/.git/config" ]
        then
-               echo "$0: Project '${project}' is no GIT project."
+               echo "$0: ERROR: Project '${project}' is no GIT project."
                exit 1
+       elif [ "${project}" != "jprojects-scripts" -a ! -d "${JPROJECTS_HOME}/${project}/src/" ]
+       then
+               echo "$0: WARNING: Project '${project}' has no 'src' directory."
        fi
+
+       # Add it as available
+       LIST="${LIST} ${project}"
 done