add gitdist for release distribution
This commit is contained in:
parent
838627917d
commit
a4c62c2221
45
gitdist
Executable file
45
gitdist
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
|
||||
###################################
|
||||
# gitdist packs zip archives and #
|
||||
# copies them to a remote server #
|
||||
###################################
|
||||
|
||||
example='projectName=spameggs
|
||||
sshUserHost="foo@bar.org"
|
||||
sshPort=22
|
||||
releaseFolder=/srv/releases
|
||||
files="binary1 binary2 readme.md"'
|
||||
|
||||
source .gitdist || { echo "you need a .gitdist file in your git repo"; exit 1; }
|
||||
|
||||
if [ -z "$projectName" ] || [ -z "$sshUserHost" ] || [ -z "$sshPort" ] || [ -z "$releaseFolder" ] || [ -z "$files" ]; then
|
||||
echo '.gitdist does not provide all necessary variables'
|
||||
echo "example of a .gitdist file:"
|
||||
echo
|
||||
echo "$example"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
timestamp=`date +"%Y%m%d-%H%M"`
|
||||
currentBranch=`git rev-parse --abbrev-ref HEAD`
|
||||
|
||||
if [ "$currentBranch" = "master" ]; then
|
||||
zipfile="$projectName-$timestamp.zip"
|
||||
setCurrent=true
|
||||
else
|
||||
zipfile="$projectName-$currentBranch-$timestamp.zip"
|
||||
fi
|
||||
echo "zipfile: $zipfile"
|
||||
zip "$zipfile" $files
|
||||
|
||||
destination="$releaseFolder/$projectName"
|
||||
echo "destination: $sshUserHost:$destination"
|
||||
ssh $sshUserHost -p $sshPort mkdir -p "$destination"
|
||||
scp -P "$sshPort" "$zipfile" "$sshUserHost:$destination"
|
||||
if [ "$setCurrent" = true ]; then
|
||||
target="$destination/$zipfile"
|
||||
slink="$destination/current.zip"
|
||||
echo "linking $slink -> $target"
|
||||
ssh $sshUserHost -p $sshPort ln -sf "$target" "$slink"
|
||||
fi
|
Loading…
Reference in New Issue
Block a user