all: sync with master; upd chlog
This commit is contained in:
77
scripts/snap/build.sh
Normal file
77
scripts/snap/build.sh
Normal file
@@ -0,0 +1,77 @@
|
||||
#!/bin/sh
|
||||
|
||||
verbose="${VERBOSE:-0}"
|
||||
|
||||
if [ "$verbose" -gt '0' ]
|
||||
then
|
||||
set -x
|
||||
fi
|
||||
|
||||
set -e -f -u
|
||||
|
||||
# Function log is an echo wrapper that writes to stderr if the caller requested
|
||||
# verbosity level greater than 0. Otherwise, it does nothing.
|
||||
#
|
||||
# TODO(a.garipov): Add to helpers.sh and use more actively in scripts.
|
||||
log() {
|
||||
if [ "$verbose" -gt '0' ]
|
||||
then
|
||||
# Don't use quotes to get word splitting.
|
||||
echo "$1" 1>&2
|
||||
fi
|
||||
}
|
||||
|
||||
version="$( ./AdGuardHome_amd64 --version | cut -d ' ' -f 4 )"
|
||||
if [ "$version" = '' ]
|
||||
then
|
||||
log 'empty version from ./AdGuardHome_amd64'
|
||||
exit 1
|
||||
fi
|
||||
readonly version
|
||||
|
||||
log "version '$version'"
|
||||
|
||||
for arch in\
|
||||
'i386'\
|
||||
'amd64'\
|
||||
'armhf'\
|
||||
'arm64'
|
||||
do
|
||||
build_output="./AdGuardHome_${arch}"
|
||||
snap_output="./AdGuardHome_${arch}.snap"
|
||||
snap_dir="${snap_output}.dir"
|
||||
|
||||
# Create the meta subdirectory and copy files there.
|
||||
mkdir -p "${snap_dir}/meta"
|
||||
cp "$build_output" "${snap_dir}/AdGuardHome"
|
||||
cp './snap/local/adguard-home-web.sh' "$snap_dir"
|
||||
cp -r './snap/gui' "${snap_dir}/meta/"
|
||||
|
||||
# Create a snap.yaml file, setting the values.
|
||||
sed\
|
||||
-e 's/%VERSION%/'"$version"'/'\
|
||||
-e 's/%ARCH%/'"$arch"'/'\
|
||||
./snap/snap.tmpl.yaml\
|
||||
> "${snap_dir}/meta/snap.yaml"
|
||||
|
||||
# TODO(a.garipov): The snapcraft tool will *always* write everything,
|
||||
# including errors, to stdout. And there doesn't seem to be a way to change
|
||||
# that. So, save the combined output, but only show it when snapcraft
|
||||
# actually fails.
|
||||
set +e
|
||||
snapcraft_output="$(
|
||||
snapcraft pack "$snap_dir" --output "$snap_output" 2>&1
|
||||
)"
|
||||
snapcraft_exit_code="$?"
|
||||
set -e
|
||||
|
||||
if [ "$snapcraft_exit_code" -ne '0' ]
|
||||
then
|
||||
log "$snapcraft_output"
|
||||
exit "$snapcraft_exit_code"
|
||||
fi
|
||||
|
||||
log "$snap_output"
|
||||
|
||||
rm -f -r "$snap_dir"
|
||||
done
|
||||
Reference in New Issue
Block a user