You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2011/10/02 11:04:32 UTC

svn commit: r1178155 - /commons/scripts/convert-to-package-info.sh

Author: luc
Date: Sun Oct  2 09:04:32 2011
New Revision: 1178155

URL: http://svn.apache.org/viewvc?rev=1178155&view=rev
Log:
added the script converting package.html into package.info

Added:
    commons/scripts/convert-to-package-info.sh   (with props)

Added: commons/scripts/convert-to-package-info.sh
URL: http://svn.apache.org/viewvc/commons/scripts/convert-to-package-info.sh?rev=1178155&view=auto
==============================================================================
--- commons/scripts/convert-to-package-info.sh (added)
+++ commons/scripts/convert-to-package-info.sh Sun Oct  2 09:04:32 2011
@@ -0,0 +1,150 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This shell script converts all package.html files found
+# in a sources directory tree into package-info.java files
+# Command-line flags:
+#  -h (or --help) to display usage help
+#  -v (or --verbose) to display the names of converted files
+#  -d (or --delete) to delete the package.html files after conversion
+#  -t top-level-package (or --top top-level-package) to set the top level
+#     package name to something different from the default org.apache
+#  directory for the top directory from which package files are searched
+
+# temporary sed scripts directory
+scripts=/tmp/scripts-$$
+
+trap "test -d $scripts && rm -fr $scripts" 0
+trap "exit 1" 1 2 15
+
+usage()
+{
+  echo "usage: sh convert-to-package-info [-h|--help] [-v|verbose] [-d|--delete] [-t|--top top-level-package] directory" 1>&2
+  exit $1
+}
+
+# set up sed conversion scripts
+create_sed_scripts()
+{
+  if [ ! -d $scripts ] ; then
+    mkdir $scripts
+  fi
+
+  cat > $scripts/canonicalize.sed <<EOF
+s,<body>,<body>\\n,
+s,</body>,\\n</body>,
+s,\*,\\&lowast;,g
+EOF
+
+  cat > $scripts/convert.sed <<EOF
+1i\\
+/*\\
+ * Licensed to the Apache Software Foundation (ASF) under one or more\\
+ * contributor license agreements.  See the NOTICE file distributed with\\
+ * this work for additional information regarding copyright ownership.\\
+ * The ASF licenses this file to You under the Apache License, Version 2.0\\
+ * (the "License"); you may not use this file except in compliance with\\
+ * the License.  You may obtain a copy of the License at\\
+ *\\
+ *      http://www.apache.org/licenses/LICENSE-2.0\\
+ *\\
+ * Unless required by applicable law or agreed to in writing, software\\
+ * distributed under the License is distributed on an "AS IS" BASIS,\\
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\
+ * See the License for the specific language governing permissions and\\
+ * limitations under the License.\\
+ */
+
+:delete-header-footer
+\%<body>%{
+         s,.*,/**,
+         n
+         b copy-body
+        }
+d
+n
+b delete-header-footer
+
+:copy-body
+\%</body>%{
+          s,.*, */,
+          a\
+package $1;
+          n
+          b delete-header-footer
+         }
+s,^, * ,
+n
+b copy-body
+EOF
+
+}
+
+extract_package_name()
+{
+  echo $1 | sed -e "s,/,.,g" -e "s,.*\.\($toplevel\..*\)\.package.html$,\1,"
+}
+
+help=no
+verbose=no
+delete=no
+toplevel=org.apache
+directory=""
+while [ $# -gt 0 ] ; do
+  case "$1" in
+    -h|--help)
+                 help=yes
+                 shift;;
+    -v|--verbose)
+                 verbose=yes
+                 shift;;
+    -d|--delete)
+                 delete=yes
+                 shift;;
+    -t|--top)
+                 shift
+                 toplevel="$1"
+                 shift;;
+    *)
+                 directory="$1"
+                 shift;;
+  esac
+done
+
+if [ "$help" = "yes" ] ; then
+  usage 0
+fi
+if [ "$directory" = "" ] ; then
+  usage 1
+fi
+if [ ! -d "$directory" ] ; then
+  echo "$directory is not a directory" 1>&2
+  usage 1
+fi
+
+for f in `find "$directory" -name .svn -prune -o -name "package.html" -print` ; do
+  package=`extract_package_name "$f"`
+  create_sed_scripts $package
+  g="`dirname $f`/package-info.java"
+  sed -f $scripts/canonicalize.sed < "$f" | sed -f $scripts/convert.sed > "$g"
+  if [ "$verbose" = "yes" ] ; then
+    echo "converted $f"
+  fi
+  if [ "$delete" = "yes" ] ; then
+    rm -f "$f"
+  fi
+done

Propchange: commons/scripts/convert-to-package-info.sh
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/scripts/convert-to-package-info.sh
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision