Preparing assembly of Karaf and ONOS artifacts for off-line deployments.

Change-Id: I113490bc6735f5372e33bb671ad5adec640b2e36
diff --git a/tools/package/karaf-assembly/onos-assembly b/tools/package/karaf-assembly/onos-assembly
new file mode 100755
index 0000000..ece4409
--- /dev/null
+++ b/tools/package/karaf-assembly/onos-assembly
@@ -0,0 +1,35 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Assembles together all bundles required to run ONOS off-line.
+# -----------------------------------------------------------------------------
+
+mkdir -p target
+
+features=target/features-list.xml
+repos=target/staged-repos.xml
+
+echo "<features>" > $repos
+echo "    <repository>mvn:org.onosproject/onos-features/1.4.0-SNAPSHOT/xml/features</repository>" >> $repos
+
+# Find all app feature files
+find $ONOS_ROOT -name '*-features.xml' | grep -v features-repo > $features
+
+# Produce repository entry for each file
+cat $features | while read feature; do
+    echo "    <repository>file:$feature</repository>" >> $repos
+done
+
+# Create a synthetic feature that depends on all other ONOS features
+echo "   <feature name=\"foo\">" >> $repos
+grep "feature name=" $ONOS_ROOT/features/features.xml | cut -d\" -f2 | while read f; do
+    echo "        <feature>$f</feature>" >> $repos
+done
+
+cat $features | while read feature; do
+    grep "feature name=" $feature | cut -d\" -f2 | while read f; do
+        echo "        <feature>$f</feature>" >> $repos
+    done
+done
+echo "   </feature>" >> $repos
+
+echo "</features>" >> $repos
\ No newline at end of file