You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							111 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							111 lines
						
					
					
						
							2.2 KiB
						
					
					
				| #!/bin/bash | |
|  | |
| set -e | |
| 
 | |
| THIS_SCRIPT=`basename "$0"` | |
| 
 | |
| function usage | |
| { | |
|     echo "$THIS_SCRIPT <BZR_URL> <SRC_DIR> [<GPG_KEY>]" | |
| } | |
| 
 | |
| function gpg_sign | |
| { | |
|     FILE="$1" | |
|     rm -f "$FILE".sig | |
|     $GPG --batch --use-agent --detach-sign --local-user "$GPG_KEY" \ | |
|         "$FILE" | |
| } | |
| 
 | |
| function maybe_gpg_sign | |
| { | |
|     [[ -e "$1" ]] && gpg_sign "$1" | |
| } | |
| 
 | |
| function command_exists | |
| { | |
|     type "$1" &>/dev/null | |
| } | |
| 
 | |
| function find_archiver | |
| { | |
|     command_exists "$1" && echo "$1" || echo ':' | |
| } | |
| 
 | |
| BZR_URL="$1" | |
| if [[ -z "$BZR_URL" ]] ; then | |
|     usage | |
|     exit 1 | |
| fi | |
| 
 | |
| if [[ -z "$2" ]] ; then | |
|     BZR_URL=${BZR_URL%/} | |
|     BZR_BASE_URL=${BZR_URL%/*} | |
|     BZR_BRANCH_NAME=${BZR_URL#$BZR_BASE_URL} | |
|     BZR_BRANCH_NAME=${BZR_BRANCH_NAME#/} | |
|     SRC_DIR=$BZR_BRANCH_NAME | |
| else | |
|     SRC_DIR="$2" | |
| fi | |
| 
 | |
| if [[ ! -z "$3" ]] ; then | |
|     GPG_KEY="$3" | |
| else | |
|     GPG_KEY= | |
| fi | |
| 
 | |
| DEST_DIR="$PWD" | |
| 
 | |
| TMPDIR=${TMPDIR:-${TMP:-${TEMP}}} | |
| if [[ -z "${TMPDIR}" ]] ; then | |
|     unset TMPDIR | |
| else | |
|     export TMPDIR | |
| fi | |
| TMP_DIR=`mktemp -d -t log4cplus.XXXXXXX` | |
| pushd "$TMP_DIR" | |
| 
 | |
| TAR=${TAR:-$(find_archiver tar)} | |
| XZ=${XZ:-$(find_archiver xz)} | |
| BZIP2=${BZIP2:-$(find_archiver bzip2)} | |
| GZIP=${GZIP:-$(find_archiver gzip)} | |
| SEVENZA=${SEVENZA:-$(find_archiver 7za)} | |
| LRZIP=${LRZIP:-$(find_archiver lrzip)} | |
| BZR=${BZR:-bzr} | |
| GPG=${GPG:-gpg} | |
| 
 | |
| $BZR export --per-file-timestamps -v "$SRC_DIR" "$BZR_URL" | |
| $BZR version-info "$BZR_URL" >"$SRC_DIR/REVISION" | |
| 
 | |
| pushd "$SRC_DIR" | |
| $SHELL ./scripts/fix-timestamps.sh | |
| popd | |
| 
 | |
| $SEVENZA a -t7z "$DEST_DIR/$SRC_DIR".7z "$SRC_DIR" >/dev/null \ | |
| & $SEVENZA a -tzip "$DEST_DIR/$SRC_DIR".zip "$SRC_DIR" >/dev/null | |
| 
 | |
| TAR_FILE="$SRC_DIR".tar | |
| $TAR -cf "$TAR_FILE" "$SRC_DIR" | |
| 
 | |
| $XZ -e -c "$TAR_FILE" >"$DEST_DIR/$TAR_FILE".xz \ | |
| & $BZIP2 -9 -c "$TAR_FILE" >"$DEST_DIR/$TAR_FILE".bz2 \ | |
| & $GZIP -9 -c "$TAR_FILE" >"$DEST_DIR/$TAR_FILE".gz \ | |
| & $LRZIP -q -o - "$TAR_FILE" |([[ "$LRZIP" = ":" ]] && cat >/dev/null || cat >"$DEST_DIR/$TAR_FILE".lrz) | |
| 
 | |
| echo waiting for tarballs... | |
| wait | |
| echo done waiting | |
| 
 | |
| if [[ ! -z "$GPG_KEY" ]] ; then | |
|     maybe_gpg_sign "$DEST_DIR/$SRC_DIR".7z | |
|     maybe_gpg_sign "$DEST_DIR/$SRC_DIR".zip | |
|     maybe_gpg_sign "$DEST_DIR/$TAR_FILE".xz | |
|     maybe_gpg_sign "$DEST_DIR/$TAR_FILE".bz2 | |
|     maybe_gpg_sign "$DEST_DIR/$TAR_FILE".gz | |
|     maybe_gpg_sign "$DEST_DIR/$TAR_FILE".lrz | |
| fi | |
| 
 | |
| rm -rf "$SRC_DIR" | |
| rm -f "$TAR_FILE" | |
| popd | |
| rmdir "$TMP_DIR"
 |