public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Yixun Lan" <dlan@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-backup/snapper/, app-backup/snapper/files/
Date: Wed, 16 Oct 2019 03:42:20 +0000 (UTC)	[thread overview]
Message-ID: <1571196168.52932ec67c365fa358d893e2af8353aeed186982.dlan@gentoo> (raw)

commit:     52932ec67c365fa358d893e2af8353aeed186982
Author:     Yixun Lan <dlan <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 16 03:22:48 2019 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Wed Oct 16 03:22:48 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=52932ec6

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 <AT> gentoo.org>

 app-backup/snapper/Manifest             |   1 +
 app-backup/snapper/files/snapper.bash   | 200 ++++++++++++++++++++++++++++++++
 app-backup/snapper/snapper-0.8.4.ebuild |  78 +++++++++++++
 3 files changed, 279 insertions(+)

diff --git a/app-backup/snapper/Manifest b/app-backup/snapper/Manifest
index 42fbbd958b9..1aec298782a 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 00000000000..e5ca4134342
--- /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 00000000000..90bf21dacc2
--- /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"
+}


             reply	other threads:[~2019-10-16  3:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-16  3:42 Yixun Lan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-01-14  8:20 [gentoo-commits] repo/gentoo:master commit in: app-backup/snapper/, app-backup/snapper/files/ Yixun Lan
2021-06-06  6:35 Yixun Lan
2021-06-07  0:58 Yixun Lan
2021-12-07  8:37 Yixun Lan
2022-04-21  3:29 Yixun Lan
2022-04-26  8:46 Yixun Lan
2022-04-26  8:46 Yixun Lan
2022-09-02  5:52 Sam James
2022-12-18  5:27 Sam James
2023-12-05 12:11 Yixun Lan
2024-04-28  8:24 Yixun Lan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1571196168.52932ec67c365fa358d893e2af8353aeed186982.dlan@gentoo \
    --to=dlan@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox