cloudstack/tools/appliance/shar_cloud_scripts.sh
Leo Simons 33fd6894a0 CLOUDSTACK-7143: use shar to inject cloud-scripts from working copy
The current build downloads its script from master by fetching a cloudstack
tarball. Besides being an unneeded load on the apache git server, this is a
problem when working on a branch and wanting to inject a different set of
scripts. It also makes it pretty likely that the injected copy of the script
will not match what a production release wants, so there is very little
chance of not needing to overwrite the scripts.

Ideally we would just rsync over some files. However, veewee does not provide
an option to do that. In order to keep a 'cleanly veewee-only' build possible,
and work with any recent veewee version, in this change we restor to using
shar (http://en.wikipedia.org/wiki/Shar) to produce an archive which can
execute as a script, which we feed to veewee to execute.
2014-09-22 21:38:14 +02:00

54 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# 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.
# since veewee wants .sh files to execute, we'll give it a shar
set -e
set -x
# where we are running this script from
CURR_DIR=${PWD}
# where this script is
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# where cloudstack is checked out
cd ${SCRIPT_DIR}/../..
CLOUDSTACK_DIR=${PWD}
cd ${CURR_DIR}
# ensure we are running in isolation
TEMP_DIR=`mktemp -d -t shar_cloud`
cd ${TEMP_DIR}
mkdir cloud_scripts
mkdir -p cloud_scripts/opt/cloudstack
cp -r ${CLOUDSTACK_DIR}/systemvm/patches/debian/config/* cloud_scripts/
cp -r ${CLOUDSTACK_DIR}/systemvm/patches/debian/vpn/* cloud_scripts/
mkdir -p cloud_scripts/usr/share/cloud
cd ${CLOUDSTACK_DIR}/systemvm/patches/debian/config
tar -cf ${TEMP_DIR}/cloud_scripts/usr/share/cloud/cloud-scripts.tar *
cd ${CLOUDSTACK_DIR}/systemvm/patches/debian/vpn
tar -rf ${TEMP_DIR}/cloud_scripts/usr/share/cloud/cloud-scripts.tar *
cd ${TEMP_DIR}
shar `find . -print` > ${CURR_DIR}/cloud_scripts_shar_archive.sh
cd ${CURR_DIR}
rm -rf ${TEMP_DIR}
chmod +x cloud_scripts_shar_archive.sh
echo cloud_scripts are in cloud_scripts_shar_archive.sh