diff options
author | Yixun Lan <dlan@gentoo.org> | 2019-10-16 11:22:48 +0800 |
---|---|---|
committer | Yixun Lan <dlan@gentoo.org> | 2019-10-16 11:22:48 +0800 |
commit | 52932ec67c365fa358d893e2af8353aeed186982 (patch) | |
tree | 2c4a1b67172ef47dbdc7473c8818d3e51c3f835a /app-backup/snapper | |
parent | app-misc/tmate: drop old versions (diff) | |
download | gentoo-52932ec67c365fa358d893e2af8353aeed186982.tar.gz gentoo-52932ec67c365fa358d893e2af8353aeed186982.tar.bz2 gentoo-52932ec67c365fa358d893e2af8353aeed186982.zip |
app-backup/snapper: version bump 0.8.4, add bash-completion support
In this version, we also add bash-completion support
But it's rather better to push bash-completion support to upstream,
instead of maintaining it downstream.
thanks 'Xu Weiping' for the contribution
Closes: https://bugs.gentoo.org/697480
Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Yixun Lan <dlan@gentoo.org>
Diffstat (limited to 'app-backup/snapper')
-rw-r--r-- | app-backup/snapper/Manifest | 1 | ||||
-rw-r--r-- | app-backup/snapper/files/snapper.bash | 200 | ||||
-rw-r--r-- | app-backup/snapper/snapper-0.8.4.ebuild | 78 |
3 files changed, 279 insertions, 0 deletions
diff --git a/app-backup/snapper/Manifest b/app-backup/snapper/Manifest index 42fbbd958b9b..1aec298782a6 100644 --- a/app-backup/snapper/Manifest +++ b/app-backup/snapper/Manifest @@ -2,3 +2,4 @@ DIST snapper-0.5.6.tar.bz2 580047 BLAKE2B 3b945acbf734db1925dad5515323a64a2c08ee DIST snapper-0.8.1.tar.bz2 591061 BLAKE2B 5f9ae50469f43e930de4c4479428c94b24441832bd713847c6792ff583fb79badfa341b53cc63abfedb787367b22b715de9f83f9172dec945f7b3071c06137ba SHA512 9fa20311f346de54c4f5d1cabb42dce5c677eaac03b3fac2a6049f408553911f5a968b1920fd014f3318ebb6911f2e6bce06463e976b468927e250e16fe783a0 DIST snapper-0.8.2.tar.bz2 591558 BLAKE2B 552c07d1d83e6a8db1e1661b523aeb7164335bb6ebbeb07489325b6d23d8a5def730ac1cf0da06ab65b7a9fc1284d0d05ca0f875bc897504c1bbb45698b40294 SHA512 d968490782a47112f7ba2474555cafe450833cf055734186c79991dd836f9c5d8d669a6c65dd29b05da298e46f65e0ac5c4a1dae3b548a01dbf1b11d7e00c462 DIST snapper-0.8.3.tar.bz2 592405 BLAKE2B 7694a6c79e4beaf307801ccd97a6cd1c3c6078e68653e9a5eda3ddcd087ef32f8302d380ee550ac5c7259c7e23ddb15bf9f2d01267d5691fe10e0335d490a258 SHA512 409a8464c10905da1407ce3bf68ad1d7df53480da4f8e98e40ef4ee5cb5170bb99c07fabb367510eb2a19744a827dc9a33cf74de05fbb2fc5f22fe3dc4adef6d +DIST snapper-0.8.4.tar.bz2 594555 BLAKE2B b176420be06dea2dca73fafbebb362bb27d9b793868f84466dae020cea9d1c61c7a3896de6e0701d1e924eed8c13b1b11a7bbc3047ca41c9aaee260a438ddce3 SHA512 9e3708a2b015470798731e105ab843f21c5273f0f2f4e183afde538ad4998892c4d79996e1963e74d0a09d10b9b3057faed5e2f501a1d9a5a4b1fa36ba88bb7e diff --git a/app-backup/snapper/files/snapper.bash b/app-backup/snapper/files/snapper.bash new file mode 100644 index 000000000000..e5ca4134342a --- /dev/null +++ b/app-backup/snapper/files/snapper.bash @@ -0,0 +1,200 @@ +_snapper() +{ + local configdir="/etc/snapper/configs" + local cur prev words cword + _init_completion || return + + local GLOGAL_SNAPPER_OPTIONS=' + -q --quiet + -v --verbose + --utc + --iso + -t --table-style + -c --config + -r --root + --no-dbus + --version + --help + ' + + # see if the user selected a command already + local COMMANDS=( + "list-configs" "create-config" "delete-config" "set-config" + "list" "ls" + "create" "modify" "delete" "remove" "rm" + "mount" "umount" + "status" "diff" "xadiff" + "undochange" "rollback" + "setup-quota" + "cleanup") + + local command i + for (( i=0; i < ${#words[@]}-1; i++ )); do + if [[ ${COMMANDS[@]} =~ ${words[i]} ]]; then + command=${words[i]} + break + fi + done + + case $prev in + --version|--help) + return 0 + ;; + esac + + # supported options per command + if [[ "$cur" == -* ]]; then + case $command in + create-config) + COMPREPLY=( $( compgen -W '--fstype -f + --templete -t' -- "$cur" ) ) + return 0 + ;; + list|ls) + COMPREPLY=( $( compgen -W '--type -t + --all-configs -a' -- "$cur" ) ) + return 0 + ;; + create) + COMPREPLY=( $( compgen -W '--type -t + --pre-number + --print-number -p + --description -d + --cleanup-algorithm -c + --userdata -u + --command' -- "$cur" ) ) + return 0 + ;; + modify) + COMPREPLY=( $( compgen -W '--description -d + --cleanup-algorithm -c + --userdata -u' -- "$cur" ) ) + return 0 + ;; + delete|remove|rm) + COMPREPLY=( $( compgen -W '--sync -s + ' -- "$cur" ) ) + return 0 + ;; + status) + COMPREPLY=( $( compgen -W '--output -o + ' -- "$cur" ) ) + return 0 + ;; + diff) + COMPREPLY=( $( compgen -W '--input -i + --diff-cmd + --extensions -x' -- "$cur" ) ) + return 0 + ;; + undochange) + COMPREPLY=( $( compgen -W '--input -i + ' -- "$cur" ) ) + return 0 + ;; + rollback) + COMPREPLY=( $( compgen -W '--print-number -p + --description -d + --cleanup-algorithm -c + --userdata -u' -- "$cur" ) ) + return 0 + ;; + *) + COMPREPLY=( $( compgen -W "$GLOGAL_SNAPPER_OPTIONS" -- "$cur" ) ) + return 0 + ;; + esac + fi + + # specific command arguments + if [[ -n $command ]]; then + case $command in + create-config) + case "$prev" in + --fstype|-f) + COMPREPLY=( $( compgen -W 'btrfs ext4 lvm(xfs) lvm(ext4) + ' -- "$cur" ) ) + ;; + esac + return 0 + ;; + list) + case "$prev" in + --type|-t) + COMPREPLY=( $( compgen -W 'all single pre-post + ' -- "$cur" ) ) + ;; + esac + return 0 + ;; + create) + case "$prev" in + --type|-t) + COMPREPLY=( $( compgen -W 'single pre post + ' -- "$cur" ) ) + ;; + --pre-number) + COMPREPLY=( $( compgen -W ' + ' -- "$cur" ) ) + ;; + --cleanup-algorithm|-c) + COMPREPLY=( $( compgen -W 'empty-pre-post timeline number + ' -- "$cur" ) ) + ;; + esac + return 0 + ;; + modify) + case "$prev" in + --cleanup-algorithm|-c) + COMPREPLY=( $( compgen -W 'empty-pre-post timeline number + ' -- "$cur" ) ) + ;; + esac + return 0 + ;; + status) + case "$prev" in + --output|-o) + COMPREPLY=( $( compgen -f -- "$cur" ) ) + ;; + esac + return 0 + ;; + cleanup) + case "$prev" in + empty-pre-post|timeline|number) + ;; + *) + COMPREPLY=( $( compgen -W 'empty-pre-post timeline number + ' -- "$cur" ) ) + ;; + esac + return 0 + ;; + diff) + return 0 + ;; + undochange) + return 0 + ;; + rollback) + case "$prev" in + --cleanup-algorithm|-c) + COMPREPLY=( $( compgen -W 'empty-pre-post timeline number + ' -- "$cur" ) ) + ;; + esac + return 0 + ;; + esac + fi + + # no command yet, show what commands we have + if [ "$command" = "" ]; then + COMPREPLY=( $( compgen -W '${COMMANDS[@]} ${GLOGAL_SNAPPER_OPTIONS[@]}' -- "$cur" ) ) + fi + + return 0 +} && +complete -F _snapper snapper diff --git a/app-backup/snapper/snapper-0.8.4.ebuild b/app-backup/snapper/snapper-0.8.4.ebuild new file mode 100644 index 000000000000..90bf21dacc24 --- /dev/null +++ b/app-backup/snapper/snapper-0.8.4.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit systemd bash-completion-r1 + +DESCRIPTION="Command-line program for btrfs and lvm snapshot management" +HOMEPAGE="http://snapper.io/" +SRC_URI="ftp://ftp.suse.com/pub/projects/snapper/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="lvm pam xattr" + +RDEPEND="dev-libs/boost:=[threads] + dev-libs/libxml2 + dev-libs/icu:= + sys-apps/acl + sys-apps/dbus + sys-apps/util-linux + >=sys-fs/btrfs-progs-3.17.1 + sys-libs/zlib + virtual/libintl + lvm? ( sys-fs/lvm2 ) + pam? ( sys-libs/pam ) + xattr? ( sys-apps/attr )" + +DEPEND="${RDEPEND} + sys-devel/gettext + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/cron-confd.patch +) + +src_prepare() { + default + + sed -e "s,/usr/lib/systemd/system,$(systemd_get_systemunitdir),g" \ + -i data/Makefile.* \ + || die "Failed to fix systemd services and timers installation path" +} + +src_configure() { + # ext4 code does not work anymore + # snapper does not build without btrfs + local myeconfargs=( + --with-conf="/etc/conf.d" + --docdir="/usr/share/doc/${PF}" + --disable-zypp + --enable-rollback + --disable-ext4 + --enable-btrfs + $(use_enable lvm) + $(use_enable pam) + $(use_enable xattr xattrs) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + # Existing configuration file required to function + newconfd data/sysconfig.snapper snapper + find "${D}" -name '*.la' -delete || die + newbashcomp "${FILESDIR}"/${PN}.bash ${PN} +} + +pkg_postinst() { + elog "In order to use Snapper, you need to set up" + elog "at least one config first. To do this, run:" + elog "snapper create-config <subvolume>" + elog "For more information, see man (8) snapper or" + elog "http://snapper.io/documentation.html" +} |