#!/bin/bash KARAF_VERSION="3.0.8" KARAF_TARFILE_NAME="apache-karaf-${KARAF_VERSION}.tar" BOOT_FEATURES="standard,ssh,scr,war,webconsole" # fetch the standard karaf bits rm -f /tmp/${KARAF_TARFILE_NAME} curl -o /tmp/${KARAF_TARFILE_NAME}.gz http://onlab.vicci.org/onos/third-party/${KARAF_TARFILE_NAME}.gz # get a small cell source ${ONOS_ROOT}/tools/dev/bash_profile cell borrow 60 1+0 scp /tmp/${KARAF_TARFILE_NAME}.gz sdn@${OC1}:/tmp/${KARAF_TARFILE_NAME}.gz ssh sdn@${OC1} " # unroll the base karaf rm -rf karaf mkdir karaf cd karaf tar xf /tmp/${KARAF_TARFILE_NAME}.gz # set the ONOS default boot features perl -pi.old -e 's|^(featuresBoot=).*|\1${BOOT_FEATURES}|' apache-karaf-${KARAF_VERSION}/etc/org.apache.karaf.features.cfg # run karaf to fill the maven repo with required artifacts apache-karaf-${KARAF_VERSION}/bin/karaf server 1>/tmp/onos.out 2>/tmp/onos.err & sleep 15 # stop karaf and capture the artifacts that were downloaded into the maven repo apache-karaf-${KARAF_VERSION}/bin/karaf stop 1>/tmp/onos.out 2>/tmp/onos.err & cd ~/.m2/repository tar cvf ~/repo.tar * # start with a fresh karaf and overlay the downloaded artifacts cd rm -rf karaf-offline mkdir karaf-offline cd karaf-offline tar xf /tmp/${KARAF_TARFILE_NAME}.gz # load the downloaded artifacts into the karaf system directory cd apache-karaf-${KARAF_VERSION}/system tar xf ~/repo.tar # create a zipped tar ball of the updated karaf tree cd ~/karaf-offline tar czf ~/karaf-offline.tar.gz apache-karaf-${KARAF_VERSION} " # fetch the new offline karaf tar ball BUILD_NUMBER="apache-karaf-${KARAF_VERSION}-offline-$(date +'%Y%m%d')" scp sdn@${OC1}:karaf-offline.tar.gz /tmp/${BUILD_NUMBER}.tar.gz cell return