mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Since Groonga packages for Ubuntu 20.04 Focal are now available in their ppa so stopped building pgroonga from source.
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -x
 | 
						|
set -e
 | 
						|
 | 
						|
# Ensure the directory for LAST_DEPENDENCIES_HASH exists
 | 
						|
mkdir -p /var/lib/zulip
 | 
						|
 | 
						|
SOURCES_FILE=/etc/apt/sources.list.d/zulip.list
 | 
						|
STAMP_FILE=/etc/apt/sources.list.d/zulip.list.apt-update-in-progress
 | 
						|
 | 
						|
ZULIP_SCRIPTS="$(dirname "$(dirname "$0")")"
 | 
						|
DEPENDENCIES_HASH=$(sha1sum "$ZULIP_SCRIPTS/setup/"*.asc "$0")
 | 
						|
DEPENDENCIES_HASH_FILE="/var/lib/zulip/setup-repositories-state"
 | 
						|
# Ensure that DEPENDENCIES_HASH_FILE exists before hashing it.
 | 
						|
touch "$DEPENDENCIES_HASH_FILE"
 | 
						|
LAST_DEPENDENCIES_HASH="$(cat "$DEPENDENCIES_HASH_FILE")"
 | 
						|
 | 
						|
# First, we only do anything in setup-apt-repo if any of its inputs
 | 
						|
# (apt keys, code, etc.)  changed.
 | 
						|
if [ "$DEPENDENCIES_HASH" = "$LAST_DEPENDENCIES_HASH" ]; then
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
# Ensure that the sources file exists
 | 
						|
touch "$SOURCES_FILE"
 | 
						|
 | 
						|
# Hash it to check if the sources file is changed by the script later.
 | 
						|
zulip_source_hash=$(sha1sum "$SOURCES_FILE")
 | 
						|
 | 
						|
pre_setup_deps=(lsb-release apt-transport-https ca-certificates gnupg)
 | 
						|
if ! apt-get -dy install "${pre_setup_deps[@]}"; then
 | 
						|
    apt-get update
 | 
						|
fi
 | 
						|
apt-get -y install "${pre_setup_deps[@]}"
 | 
						|
 | 
						|
SCRIPTS_PATH="$(dirname "$(dirname "$0")")"
 | 
						|
 | 
						|
release=$(lsb_release -sc)
 | 
						|
if [[ "$release" =~ ^(xenial|bionic|cosmic|disco|eoan|focal)$ ]] ; then
 | 
						|
    apt-key add "$SCRIPTS_PATH"/setup/pgroonga-ppa.asc
 | 
						|
    cat >$SOURCES_FILE <<EOF
 | 
						|
deb http://ppa.launchpad.net/groonga/ppa/ubuntu $release main
 | 
						|
deb-src http://ppa.launchpad.net/groonga/ppa/ubuntu $release main
 | 
						|
EOF
 | 
						|
elif [[ "$release" =~ ^(stretch|buster)$ ]] ; then
 | 
						|
    apt-key add "$SCRIPTS_PATH"/setup/pgroonga-debian.asc
 | 
						|
    cat >$SOURCES_FILE <<EOF
 | 
						|
deb https://packages.groonga.org/debian/ $release main
 | 
						|
deb-src https://packages.groonga.org/debian/ $release main
 | 
						|
EOF
 | 
						|
else
 | 
						|
    echo "Unsupported release $release."
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$zulip_source_hash" = "$(sha1sum "$SOURCES_FILE")" ] && ! [ -e "$STAMP_FILE" ]; then
 | 
						|
    echo "zulip.list file did not change; skipping apt-get update"
 | 
						|
else
 | 
						|
    # We create this stamp file to ensure `apt-get update` will be run
 | 
						|
    # the next time this script is invoked, and each time after, until
 | 
						|
    # `apt-get update` finishes successfully.
 | 
						|
    touch "$STAMP_FILE"
 | 
						|
    apt-get update && rm -f "$STAMP_FILE"
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$release" = "stretch" ]; then
 | 
						|
    apt-get install -y groonga-keyring
 | 
						|
fi
 | 
						|
 | 
						|
echo "$DEPENDENCIES_HASH" > "$DEPENDENCIES_HASH_FILE"
 |