[openrtm-commit:01017] r433 - trunk/rtmtools

openrtm @ openrtm.org openrtm @ openrtm.org
2013年 2月 20日 (水) 21:42:17 JST


Author: n-ando
Date: 2013-02-20 21:42:17 +0900 (Wed, 20 Feb 2013)
New Revision: 433

Added:
   trunk/rtmtools/check_packages
Log:
check_package all-in-one package checker script has been added.

Added: trunk/rtmtools/check_packages
===================================================================
--- trunk/rtmtools/check_packages	                        (rev 0)
+++ trunk/rtmtools/check_packages	2013-02-20 12:42:17 UTC (rev 433)
@@ -0,0 +1,249 @@
+#!/bin/bash
+#
+# @file check_package
+# @brief check script for OpenRTP eclipse packages
+# @author Noriaki Ando <n-ando at aist.go.jp>
+#
+#------------------------------
+#
+#
+
+true ${WORK_DIR:=work_$$}
+# target projects
+PROJECTS="jp.go.aist.rtm.toolscommon.profiles
+    jp.go.aist.rtm.toolscommon.profiles.nl1
+    jp.go.aist.rtm.toolscommon
+    jp.go.aist.rtm.toolscommon.nl1
+    jp.go.aist.rtm.rtcbuilder
+    jp.go.aist.rtm.rtcbuilder.nl1
+    jp.go.aist.rtm.rtcbuilder.java
+    jp.go.aist.rtm.rtcbuilder.python
+    jp.go.aist.rtm.repositoryView
+    jp.go.aist.rtm.repositoryView.nl1
+    jp.go.aist.rtm.nameserviceview
+    jp.go.aist.rtm.nameserviceview.nl1
+    jp.go.aist.rtm.systemeditor
+    jp.go.aist.rtm.systemeditor.nl1"
+
+#------------------------------------------------------------
+# get_version
+#
+# This function gets version number and project version string
+# from version text file.
+# ------------------------------------------------------------
+get_version()
+{
+    if test "x$VERSION" = "x" || test "x$PROJECT_VERSION" = "x" ; then
+        echo "Environment variable VERSION/PROJECT_VERSION is not set."
+        echo "Getting from ./version text."
+        if test ! -f version.txt ; then
+            echo "version.txt not found. Plugins should be built at first."
+            echo "Aborting."
+            exit 1
+        fi
+        . ./version.txt
+    fi
+    export VERSION
+    export PROJECT_VERSION
+
+    if test "x$DISTDIR" = "x" ; then
+        DISTDIR=openrtp-$VERSION
+    fi
+    if test "x$JARDIR" = "x" ; then
+        JARDIR=$JARDIR_DEFAULT
+    fi
+}
+
+
+#------------------------------------------------------------
+# check_archive
+#------------------------------------------------------------
+check_archive()
+{
+    rm -rf $WORK_DIR/eclipse
+    mkdir -p $WORK_DIR
+    zip=`echo $FILE_NAME | grep '[zZ][iI][pP]'`
+    tar=`echo $FILE_NAME | grep '[tT][aA][rR].[gG][zZ]'`
+    if test ! "x$zip" = "x" ; then
+        echo "Extracting zip file: $FILE_NAME ..."
+        unzip $FILE_NAME -d $WORK_DIR >/dev/null 2>&1 && return 0
+        echo "Failed to extract zip file: $FILE_NAME. Aborting..."
+        return 1
+    elif test ! "x$tar" = "x" ; then
+        echo "Extracting tar.gz file: $FILE_NAME ..."
+        tar xvzf $FILE_NAME -C $WORK_DIR >/dev/null 2>&1 && return 0
+        echo "Failed to extract tar.gz file: $FILE_NAME. Aborting..."
+        return 1
+    else
+        echo "Unknown file extention. Aborting..."
+        return 1
+    fi
+    return 1
+}
+
+check_dependent_plugins()
+{
+    plugins="org.eclipse.emf_*.jar
+org.eclipse.gef_*.jar
+org.eclipse.xsd_*.jar
+org.eclipse.emf.ecore.xcore_*.jar"
+    for p in $plugins ; do
+        tmp=`ls $WORK_DIR/eclipse/plugins/$p`
+        if test "x$tmp" = "x" ; then
+            echo "[ERROR] Plugin: $p does not exist. Aboring."
+            return 1
+        else
+            file_name=`basename $tmp`
+            echo "[OK]    Plugin: $file_name exists."
+        fi
+    done
+    return 0
+}
+
+check_dependent_features()
+{
+    features="org.eclipse.emf_*
+              org.eclipse.emf.ecore.xcore_*
+              org.eclipse.xsd_*
+              org.eclipse.gef_*"
+    for p in $features ; do
+        tmp=`ls -d $WORK_DIR/eclipse/features/$p`
+        if test "x$tmp" = "x" ; then
+            echo "[ERROR] Feature: $p does not exist. Aboring."
+            return 1
+        else
+            file_name=`basename $tmp`
+            echo "[OK]    Feature: $file_name exists."
+        fi
+    done
+    return 0
+}
+
+check_openrtp_plugins()
+{
+    is_ja=`echo $FILE_NAME | grep 'ja'`
+    for p in $PROJECTS ; do
+        jar_name="${p}_${PROJECT_VERSION}.jar"
+        is_nl=`echo $p | grep '.nl'`
+        if test "x$is_nl" != "x" -a "x$is_ja" = "x" ; then
+            continue
+        fi
+        if test ! -f $WORK_DIR/eclipse/plugins/$jar_name ; then
+            echo "[ERROR] Plugin file $jar_name does not exist."
+            return 1
+        else
+            echo "[OK]    Plugin: $jar_name exists."
+        fi
+    done
+    return 0
+}
+
+check_openrtp_features()
+{
+    is_ja=`echo $FILE_NAME | grep 'ja'`
+    if test "x$is_ja" = "x" ; then
+        features="jp.go.aist.rtm.rtcbuilder.feature_*
+                  jp.go.aist.rtm.rtsystemeditor.feature_*"
+    else
+        features="jp.go.aist.rtm.rtcbuilder.feature_*
+                  jp.go.aist.rtm.rtcbuilder.nl1.feature_*
+                  jp.go.aist.rtm.rtsystemeditor.feature_*
+                  jp.go.aist.rtm.rtsystemeditor.nl1.feature_*"
+    fi
+    for p in $features ; do
+        tmp=`ls -d $WORK_DIR/eclipse/features/$p`
+        if test "x$tmp" = "x" ; then
+            echo "[ERROR] Feature: $p does not exist."
+            return 1
+        else
+            file_name=`basename $tmp`
+            echo "[OK]    Feature: $file_name exists."
+        fi
+    done
+    return 0
+}
+
+check_langpack()
+{
+    is_ja=`echo $FILE_NAME | grep 'ja'`
+    if test "x$is_ja" = "x" ; then
+        # this is not Japanese eclipse package
+        return 0
+    fi
+
+    # checking pleiades
+    if test -d $WORK_DIR/eclipse/plugins/jp.sourceforge.mergedoc.pleiades; then
+        echo "[OK]    Pleiades installed."
+        return 0
+    fi
+    # checking langpack
+    tmp=`ls $WORK_DIR/eclipse/plugins/*nl_ja*`
+    if test "x$tmp" != "x" ; then
+        echo "[OK]    Lang pack installed."
+        return 0
+    fi
+
+    echo "[ERROR] No language package installed."
+    return 1
+}
+
+check_package()
+{
+    FILE_NAME=$1
+    if check_archive && \
+		check_dependent_plugins && \
+		check_dependent_features && \
+		check_openrtp_plugins && \
+		check_openrtp_features && \
+		check_langpack ; then
+		OK_FILES="$OK_FILES $FILE_NAME"
+	else
+		BROKEN_FILES="$BROKEN_FILES $FILE_NAME"
+	fi
+}
+
+check_packages()
+{
+    for f in $* ; do
+        check_package $f
+    done
+
+	echo ""
+	echo "------------------------------------------------------------"
+	echo " Correct Package"
+	echo "------------------------------------------------------------"
+	for f in $OK_FILES ; do
+		echo $f
+	done
+	
+	echo ""
+	echo "------------------------------------------------------------"
+	echo " Broken Packages"
+	echo "------------------------------------------------------------"
+	for f in $BROKEN_FILES ; do
+		echo $f
+	done
+	
+}
+
+
+#------------------------------
+# main
+#------------------------------
+if test $# -eq 0 ; then
+    echo "Usage: $0 <OpenRTP eclipse packages>"
+    echo ""
+    echo "Example:"
+    echo "  $ $0 packages/eclipse381*"
+    echo ""
+    exit 0
+fi
+
+get_version
+check_packages $*
+rm -rf $WORK_DIR
+
+if test "x$BROKEN_FILES" != "x" ; then
+	exit 1
+fi
+exit 0


Property changes on: trunk/rtmtools/check_packages
___________________________________________________________________
Added: svn:executable
   + *



More information about the openrtm-commit mailing list