influxdb/package.sh

144 lines
3.8 KiB
Bash
Raw Normal View History

#!/bin/bash
2013-10-24 20:55:56 +00:00
set -e
2013-10-24 20:14:54 +00:00
. ./exports.sh
2013-10-28 16:27:35 +00:00
if [ $# -ne 1 ]; then
echo "Usage: $0 <version>"
exit 1
fi
admin_dir=`mktemp -d`
2013-10-28 16:27:35 +00:00
influxdb_version=$1
2013-10-24 20:55:56 +00:00
rm -rf packages
mkdir packages
2013-11-13 22:02:11 +00:00
bundle install
2013-10-24 20:55:56 +00:00
function package_admin_interface {
pushd $admin_dir
git clone https://github.com/influxdb/influxdb-admin.git .
rvm rvmrc trust ./.rvmrc
gem install bundler
bundle install
bundle exec middleman build
popd
}
2013-11-06 21:10:25 +00:00
function packae_source {
# make sure we revert the changes we made to the levigo
# source packages are used by MacOSX which should be using
# dynamic linking
pushd src/github.com/jmhodges/levigo/
git checkout .
popd
2013-11-06 21:10:25 +00:00
rm -f server
git ls-files --others | egrep -v 'github|launchpad|code.google' > /tmp/influxdb.ignored
echo "pkg/*" >> /tmp/influxdb.ignored
echo "packages/*" >> /tmp/influxdb.ignored
echo "build/*" >> /tmp/influxdb.ignored
echo "out_rpm/*" >> /tmp/influxdb.ignored
tar_file=influxdb-$influxdb_version.src.tar.gz
2013-11-07 15:21:51 +00:00
tar -czf packages/$tar_file --exclude-vcs -X /tmp/influxdb.ignored *
2013-11-06 21:10:25 +00:00
pushd packages
# put all files in influxdb
mkdir influxdb
2013-11-07 15:21:51 +00:00
tar -xzf $tar_file -C influxdb
2013-11-06 21:10:25 +00:00
rm $tar_file
2013-11-07 15:21:51 +00:00
tar -czf $tar_file influxdb
2013-11-06 21:10:25 +00:00
popd
}
2013-10-24 20:55:56 +00:00
function package_files {
if [ $# -ne 1 ]; then
echo "Usage: $0 architecture"
return 1
fi
rm -rf build
mkdir build
package_admin_interface
2013-10-24 20:55:56 +00:00
mv server build/influxdb
# cp -R src/admin/site/ build/admin/
mkdir build/admin
cp -R $admin_dir/build/* build/admin/
2013-10-24 20:55:56 +00:00
2013-10-26 16:42:03 +00:00
cp -R scripts/ build/
2013-10-24 20:55:56 +00:00
tar_file=influxdb-$influxdb_version.$1.tar.gz
tar -czf $tar_file build/*
mv $tar_file packages/
2013-11-06 17:20:00 +00:00
# the tar file should use "./assets" but the deb and rpm packages should use "/opt/influxdb/current/admin"
cat > build/config.json <<EOF
{
"AdminHttpPort": 8083,
"AdminAssetsDir": "/opt/influxdb/current/admin",
"ApiHttpPort": 8086,
"RaftServerPort": 8090,
"SeedServers": [],
"DataDir": "/opt/influxdb/shared/data/db",
"RaftDir": "/opt/influxdb/shared/data/raft"
}
EOF
rm build/*.bak
rm build/scripts/*.bak
2013-10-24 20:55:56 +00:00
}
function build_packages {
if [ $# -ne 1 ]; then
echo "Usage: $0 architecture"
return 1
fi
if [ $1 == "386" ]; then
rpm_args="setarch i386"
deb_args="-a i386"
fi
rm -rf out_rpm
mkdir -p out_rpm/opt/influxdb/versions/$influxdb_version
cp -r build/* out_rpm/opt/influxdb/versions/$influxdb_version
pushd out_rpm
2013-10-26 16:42:03 +00:00
$rpm_args fpm -s dir -t rpm --after-install ../scripts/post_install.sh -n influxdb -v $influxdb_version . || exit $?
2013-10-24 20:55:56 +00:00
mv *.rpm ../packages/
2013-10-26 16:42:03 +00:00
fpm -s dir -t deb $deb_args --after-install ../scripts/post_install.sh -n influxdb -v $influxdb_version . || exit $?
2013-10-24 20:55:56 +00:00
mv *.deb ../packages/
popd
}
2013-10-24 20:55:56 +00:00
function setup_version {
echo "Changing version from dev to $influxdb_version"
2013-10-26 16:24:59 +00:00
sha1=`git rev-list --max-count=1 HEAD`
2013-11-13 16:23:57 +00:00
sed -i.bak -e "s/version = \"dev\"/version = \"$influxdb_version\"/" -e "s/gitSha\s*=\s*\"HEAD\"/gitSha = \"$sha1\"/" src/server/server.go
2013-10-26 16:42:03 +00:00
sed -i.bak -e "s/REPLACE_VERSION/$influxdb_version/" scripts/post_install.sh
2013-10-24 20:55:56 +00:00
}
2013-10-24 20:55:56 +00:00
function revert_version {
2013-10-26 16:42:03 +00:00
if [ -e src/server/server.go.bak ]; then
rm src/server/server.go
mv src/server/server.go.bak src/server/server.go
fi
if [ -e scripts/post_install.sh ]; then
rm scripts/post_install.sh
mv scripts/post_install.sh.bak scripts/post_install.sh
2013-10-24 20:55:56 +00:00
fi
2013-10-24 20:55:56 +00:00
echo "Changed version back to dev"
}
2013-10-24 20:55:56 +00:00
setup_version
UPDATE=on ./build.sh && package_files amd64 && build_packages amd64
2013-11-20 19:04:31 +00:00
# we need to build to make sure all the dependencies are downloaded
2013-11-06 18:46:15 +00:00
[ $on_linux == yes ] && CGO_ENABLED=1 GOARCH=386 UPDATE=on ./build.sh && package_files 386 && build_packages 386
packae_source
revert_version