Merge e7e4868847
into 6bb80cbdaa
This commit is contained in:
commit
93a418ea84
4 changed files with 127 additions and 0 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -23,3 +23,8 @@ release
|
||||||
/t/geturl_connectivity.pl
|
/t/geturl_connectivity.pl
|
||||||
/t/version.pl
|
/t/version.pl
|
||||||
/test-suite.log
|
/test-suite.log
|
||||||
|
# snap build
|
||||||
|
parts/
|
||||||
|
prime/
|
||||||
|
stage/
|
||||||
|
*.snap
|
||||||
|
|
6
build-aux/snap/hooks/install
Executable file
6
build-aux/snap/hooks/install
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# copy default config to editable location
|
||||||
|
mkdir -p ${SNAP_COMMON}/etc/ddclient
|
||||||
|
cp ${SNAP}/etc/ddclient/ddclient.conf ${SNAP_COMMON}/etc/ddclient/ddclient.conf
|
||||||
|
chmod 600 ${SNAP_COMMON}/etc/ddclient/ddclient.conf
|
92
build-aux/snap/snapcraft.yaml
Normal file
92
build-aux/snap/snapcraft.yaml
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
name: ddclient
|
||||||
|
summary: Ddclient updates dynamic DNS entries on a wide range of dynamic DNS services
|
||||||
|
description: |
|
||||||
|
ddclient is a Perl client used to update dynamic DNS entries
|
||||||
|
for accounts on many dynamic DNS services. It uses curl for internet access.
|
||||||
|
Full list of the supported services can be found at the project page:
|
||||||
|
https://github.com/ddclient/ddclient?tab=readme-ov-file
|
||||||
|
|
||||||
|
Once installed, configure config file and enable service with
|
||||||
|
`$ snap start --enable ddclient.daemon`
|
||||||
|
For more information run `$ ddclient`
|
||||||
|
|
||||||
|
type: app
|
||||||
|
base: core24
|
||||||
|
adopt-info: ddclient
|
||||||
|
license: GPL-2.0
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
amd64:
|
||||||
|
armhf:
|
||||||
|
arm64:
|
||||||
|
|
||||||
|
confinement: strict
|
||||||
|
grade: stable
|
||||||
|
|
||||||
|
environment:
|
||||||
|
LD_LIBRARY_PATH: ${SNAP}/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}
|
||||||
|
PATH: ${SNAP}/usr/bin:/usr/bin
|
||||||
|
PERL5LIB: ${SNAP}/usr/share/perl:${SNAP}/usr/share/perl5:${SNAP}/usr/share/perl-openssl-defaults:${SNAP}/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/perl
|
||||||
|
|
||||||
|
apps:
|
||||||
|
ddclient:
|
||||||
|
command: usr/bin/ddclient-wrapper --help
|
||||||
|
|
||||||
|
daemon:
|
||||||
|
command: usr/bin/ddclient-wrapper
|
||||||
|
install-mode: disable
|
||||||
|
daemon: simple
|
||||||
|
plugs:
|
||||||
|
- network
|
||||||
|
|
||||||
|
parts:
|
||||||
|
ddclient:
|
||||||
|
plugin: autotools
|
||||||
|
source: .
|
||||||
|
autotools-configure-parameters:
|
||||||
|
- --prefix=/usr
|
||||||
|
- --sysconfdir=/etc/ddclient
|
||||||
|
- --localstatedir=/var
|
||||||
|
override-pull: |
|
||||||
|
craftctl default
|
||||||
|
stable_tag=$(git tag --list | sort --version-sort | tail -1 | cut -c 2-)
|
||||||
|
# collect versions in the store
|
||||||
|
stable_version="$(snap info ${CRAFT_PROJECT_NAME} | awk '$1 == "latest/stable:" {gsub(/--/,"",$2); print $2 }' || true)" 2>/dev/null
|
||||||
|
beta_version="$(snap info ${CRAFT_PROJECT_NAME} | awk '$1 == "latest/beta:" {gsub(/--/,"",$2); print $2 }' || true)" 2>/dev/null
|
||||||
|
# If there is no stable version, build latest stable_tag
|
||||||
|
# If stable_tag is newer than stable_version, build stable_tag
|
||||||
|
# If beta channel is closed (string '^'), build stable_tag
|
||||||
|
# if we have no version defined, we are building tip from master
|
||||||
|
if [ -z "${stable_version}" ] \
|
||||||
|
|| [ "^" = "${beta_version}" ] \
|
||||||
|
|| $(dpkg --compare-versions "${beta_version}" "lt" "${stable_tag}" ); then
|
||||||
|
version="${stable_tag}"
|
||||||
|
echo "building tagged version ${version}"
|
||||||
|
else
|
||||||
|
echo "building from the tip..."
|
||||||
|
fi
|
||||||
|
if [ -n "${version-}" ]; then
|
||||||
|
git checkout v${version}
|
||||||
|
else
|
||||||
|
version="$(git describe --tags | cut -c 2-)"
|
||||||
|
fi
|
||||||
|
craftctl set version="${version}"
|
||||||
|
override-build: |
|
||||||
|
craftctl default
|
||||||
|
# disable mail operations
|
||||||
|
sed -i \
|
||||||
|
-e 's/mail=\(.*\)/# mail=\1/g' \
|
||||||
|
-e 's/mail-failure=\(.*\)/# mail-failure=\1/g' \
|
||||||
|
${CRAFT_PART_INSTALL}/etc/ddclient/ddclient.conf
|
||||||
|
sed -i \
|
||||||
|
-e 's|'"${CRAFT_PART_INSTALL}"'|/snap/'"${CRAFT_PROJECT_NAME}"'/current|g' \
|
||||||
|
${CRAFT_PART_INSTALL}/usr/bin/ddclient
|
||||||
|
install -m 755 ${CRAFT_PROJECT_DIR}/ddclient-snap-wrapper \
|
||||||
|
${CRAFT_PART_INSTALL}/usr/bin/ddclient-wrapper
|
||||||
|
stage-packages:
|
||||||
|
- curl
|
||||||
|
- libio-socket-ssl-perl
|
||||||
|
- perl
|
||||||
|
|
||||||
|
build-packages:
|
||||||
|
- curl
|
24
ddclient-snap-wrapper
Executable file
24
ddclient-snap-wrapper
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# handle --help as special case
|
||||||
|
|
||||||
|
config_file="${SNAP_COMMON}/etc/ddclient/ddclient.conf"
|
||||||
|
|
||||||
|
print_help() {
|
||||||
|
echo -e "${SNAP_NAME} uses config file as way to configuration."
|
||||||
|
echo -e "Edit ${config_file} with desired configuration."
|
||||||
|
echo -e "Once config is ready, enable service with:"
|
||||||
|
echo -e "\t$ snap start --enable ${SNAP_NAME}.daemon"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "${1}" = "--help" ]; then
|
||||||
|
print_help
|
||||||
|
else
|
||||||
|
mkdir -p -m 700 /tmp/cache
|
||||||
|
"${SNAP}"/usr/bin/ddclient \
|
||||||
|
-file "${config_file}" \
|
||||||
|
-cache /tmp/cache/ddclient.cache \
|
||||||
|
-pid /tmp/ddclient.pid \
|
||||||
|
--foreground
|
||||||
|
${@}
|
||||||
|
fi
|
Loading…
Reference in a new issue