git: 6e0810c6b23d - main - sysutils/pass-coffing: Add new port

From: Nicola Vitale <nivit_at_FreeBSD.org>
Date: Sat, 24 Aug 2024 20:25:16 UTC
The branch main has been updated by nivit:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6e0810c6b23d02ce52b1deda57dfbaefa081ee06

commit 6e0810c6b23d02ce52b1deda57dfbaefa081ee06
Author:     Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2024-08-24 20:23:37 +0000
Commit:     Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2024-08-24 20:24:48 +0000

    sysutils/pass-coffing: Add new port
    
    pass-coffin is a pass extension that hides password store data inside a GPG
    encrypted file, which we'll call a coffin.
    
    Because of how pass works, directory and file names aren't encrypted by default
    and anyone who has access to your computer can see which websites you use and
    your usernames on those websites. This is different from how password managers
    like keepassxc work by keeping your entire password store database inside an
    encrypted file and can also automatically lock access to the application itself
    after a certain amount of time. pass-coffin has been created to provide these
    missing features to pass.
    
    https://github.com/ayushnix/pass-coffin
---
 sysutils/Makefile                |  1 +
 sysutils/pass-coffin/Makefile    | 44 ++++++++++++++++++++++++++++++++++++++++
 sysutils/pass-coffin/distinfo    |  3 +++
 sysutils/pass-coffin/pkg-descr   | 10 +++++++++
 sysutils/pass-coffin/pkg-message | 20 ++++++++++++++++++
 sysutils/pass-coffin/pkg-plist   |  6 ++++++
 6 files changed, 84 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index 58fdec40ae7c..6ee668d98969 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -977,6 +977,7 @@
     SUBDIR += parafly
     SUBDIR += parallel
     SUBDIR += parkverbot
+    SUBDIR += pass-coffin
     SUBDIR += pass-otp
     SUBDIR += pass-secrets
     SUBDIR += pass-update
diff --git a/sysutils/pass-coffin/Makefile b/sysutils/pass-coffin/Makefile
new file mode 100644
index 000000000000..681e8fb48983
--- /dev/null
+++ b/sysutils/pass-coffin/Makefile
@@ -0,0 +1,44 @@
+PORTNAME=	pass-coffin
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.2.1
+CATEGORIES=	sysutils
+
+MAINTAINER=	nivit@FreeBSD.org
+COMMENT=	Password store extension to hide data inside an encrypted coffin
+WWW=		https://github.com/ayushnix/pass-coffin
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	bash:shells/bash \
+		pass:sysutils/password-store
+
+USES=		shebangfix
+USE_GITHUB=	yes
+GH_ACCOUNT=	ayushnix
+SHEBANG_FILES=	*.bash
+
+NO_ARCH=	yes
+
+OPTIONS_DEFINE=		DOCS
+DOCS_BUILD_DEPENDS=	md2roff:textproc/md2roff
+
+do-build:
+	${DO_NADA}
+
+post-build-DOCS-on:
+	${LOCALBASE}/bin/md2roff ${WRKSRC}/README.md
+
+do-install:
+	@${MKDIR} ${STAGEDIR}${PREFIX}/libexec/password-store/extensions
+	@${MKDIR} ${STAGEDIR}${PREFIX}/share/bash-completion/completions
+	${INSTALL_SCRIPT} ${WRKSRC}/*.bash \
+		${STAGEDIR}${PREFIX}/libexec/password-store/extensions
+	${INSTALL_DATA} ${WRKSRC}/completion/pass-coffin.bash-completion \
+		${STAGEDIR}${PREFIX}/share/bash-completion/completions
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README.html ${STAGEDIR}${DOCSDIR}/
+
+.include <bsd.port.mk>
diff --git a/sysutils/pass-coffin/distinfo b/sysutils/pass-coffin/distinfo
new file mode 100644
index 000000000000..2228b8d2237a
--- /dev/null
+++ b/sysutils/pass-coffin/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1707729432
+SHA256 (ayushnix-pass-coffin-v1.2.1_GH0.tar.gz) = bca41b9c9dc3525ddfccef31baef2c61366a968c43ee841c3b6c6934e3263fbe
+SIZE (ayushnix-pass-coffin-v1.2.1_GH0.tar.gz) = 20242
diff --git a/sysutils/pass-coffin/pkg-descr b/sysutils/pass-coffin/pkg-descr
new file mode 100644
index 000000000000..3559ac6ff539
--- /dev/null
+++ b/sysutils/pass-coffin/pkg-descr
@@ -0,0 +1,10 @@
+pass-coffin is a pass extension that hides password store data inside a GPG
+encrypted file, which we'll call a coffin.
+
+Because of how pass works, directory and file names aren't encrypted by default
+and anyone who has access to your computer can see which websites you use and
+your usernames on those websites. This is different from how password managers
+like keepassxc work by keeping your entire password store database inside an
+encrypted file and can also automatically lock access to the application itself
+after a certain amount of time. pass-coffin has been created to provide these
+missing features to pass.
diff --git a/sysutils/pass-coffin/pkg-message b/sysutils/pass-coffin/pkg-message
new file mode 100644
index 000000000000..de55558b937f
--- /dev/null
+++ b/sysutils/pass-coffin/pkg-message
@@ -0,0 +1,20 @@
+[
+{ type: install
+  message: <<EOM
+
+*** Please Create Backups or Use Git ***
+
+Before using this extension or any other password store extension, It is highly
+recommend that you check in your password store in a local git repository and
+sync it with a remote git repository (doesn't have to be an online remote repo)
+or make regular backups of your password store using tools like borgbackup. You
+don't want to lose your password store data because of an unintentional bug in
+this, or any other, pass extension.
+
+Use `pass git initʼ to initialize a local git repository in your password store
+and add a remote git repository using `pass git remote add backup <location>ʼ.
+For more details, please read the "EXTENDED GIT EXAMPLE" section of the man
+page of pass.
+EOM
+}
+]
diff --git a/sysutils/pass-coffin/pkg-plist b/sysutils/pass-coffin/pkg-plist
new file mode 100644
index 000000000000..47b80e51379a
--- /dev/null
+++ b/sysutils/pass-coffin/pkg-plist
@@ -0,0 +1,6 @@
+libexec/password-store/extensions/close.bash
+libexec/password-store/extensions/coffin.bash
+libexec/password-store/extensions/open.bash
+libexec/password-store/extensions/timer.bash
+share/bash-completion/completions/pass-coffin.bash-completion
+%%PORTDOCS%%%%DOCSDIR%%/README.html