git: 5e15829fe97c - main - net/qrcp: add port: Transfer files over wifi by scanning a QR code

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Fri, 24 Feb 2023 04:31:18 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5e15829fe97c2397ed6b91f84c3426c570871edd

commit 5e15829fe97c2397ed6b91f84c3426c570871edd
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2023-02-24 04:29:47 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2023-02-24 04:31:05 +0000

    net/qrcp: add port: Transfer files over wifi by scanning a QR code
    
    Transfer files over Wi-Fi from your computer to a mobile device by
    scanning a QR code without leaving the terminal.
    
    qrcp binds a web server to the address of your Wi-Fi network interface
    on a random port and creates a handler for it. The default handler
    serves the content and exits the program when the transfer is
    complete. When used to receive files, qrcp serves an upload page and
    handles the transfer.
    
    WWW: https://claudiodangelis.com/qrcp
---
 net/Makefile       |  1 +
 net/qrcp/Makefile  | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 net/qrcp/distinfo  | 41 +++++++++++++++++++++++++++++++++++++++++
 net/qrcp/pkg-descr |  8 ++++++++
 4 files changed, 96 insertions(+)

diff --git a/net/Makefile b/net/Makefile
index 4a5fe3ff19b5..5e9c23a1be6d 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1170,6 +1170,7 @@
     SUBDIR += pyrad
     SUBDIR += qadsl
     SUBDIR += qoauth-qt5
+    SUBDIR += qrcp
     SUBDIR += qt5-network
     SUBDIR += qt5-networkauth
     SUBDIR += qt6-networkauth
diff --git a/net/qrcp/Makefile b/net/qrcp/Makefile
new file mode 100644
index 000000000000..4edbfdeb5d06
--- /dev/null
+++ b/net/qrcp/Makefile
@@ -0,0 +1,46 @@
+PORTNAME=	qrcp
+DISTVERSION=	0.9.1
+CATEGORIES=	net
+
+MAINTAINER=	tagattie@FreeBSD.org
+COMMENT=	Transfer files over wifi by scanning a QR code
+WWW=		https://claudiodangelis.com/qrcp
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		go:modules
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	claudiodangelis
+GH_TUPLE=	\
+		adrg:xdg:v0.3.2:adrg_xdg/vendor/github.com/adrg/xdg \
+		asaskevich:govalidator:475eaeb16496:asaskevich_govalidator/vendor/github.com/asaskevich/govalidator \
+		cheggaaa:pb:v1.0.28:cheggaaa_pb/vendor/gopkg.in/cheggaaa/pb.v1 \
+		chzyer:readline:2972be24d48e:chzyer_readline/vendor/github.com/chzyer/readline \
+		eiannone:keyboard:caf4b762e807:eiannone_keyboard/vendor/github.com/eiannone/keyboard \
+		fatih:color:v1.9.0:fatih_color/vendor/github.com/fatih/color \
+		glendc:go-external-ip:139229dcdddd:glendc_go_external_ip/vendor/github.com/glendc/go-external-ip \
+		golang:sys:d5e6a3e2c0ae:golang_sys/vendor/golang.org/x/sys \
+		inconshreveable:mousetrap:v1.0.0:inconshreveable_mousetrap/vendor/github.com/inconshreveable/mousetrap \
+		jhoonb:archivex:0488e4ce1681:jhoonb_archivex/vendor/github.com/jhoonb/archivex \
+		juju:ansiterm:720a0952cc2a:juju_ansiterm/vendor/github.com/juju/ansiterm \
+		lunixbochs:vtclean:2d01aacdc34a:lunixbochs_vtclean/vendor/github.com/lunixbochs/vtclean \
+		manifoldco:promptui:v0.7.0:manifoldco_promptui/vendor/github.com/manifoldco/promptui \
+		mattn:go-colorable:v0.1.6:mattn_go_colorable/vendor/github.com/mattn/go-colorable \
+		mattn:go-isatty:v0.0.12:mattn_go_isatty/vendor/github.com/mattn/go-isatty \
+		mattn:go-runewidth:v0.0.9:mattn_go_runewidth/vendor/github.com/mattn/go-runewidth \
+		skip2:go-qrcode:9434209cb086:skip2_go_qrcode/vendor/github.com/skip2/go-qrcode \
+		spf13:cobra:v1.0.0:spf13_cobra/vendor/github.com/spf13/cobra \
+		spf13:pflag:v1.0.3:spf13_pflag/vendor/github.com/spf13/pflag
+
+PLIST_FILES=	bin/qrcp
+PORTDOCS=	README.md SECURITY.md
+
+OPTIONS_DEFINE=	DOCS
+
+post-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/net/qrcp/distinfo b/net/qrcp/distinfo
new file mode 100644
index 000000000000..0a394de8070c
--- /dev/null
+++ b/net/qrcp/distinfo
@@ -0,0 +1,41 @@
+TIMESTAMP = 1677064622
+SHA256 (claudiodangelis-qrcp-0.9.1_GH0.tar.gz) = 1ee0d1b04222fb2a559d412b144a49051c3315cbc99c7ea1f281bdd4f13f07bf
+SIZE (claudiodangelis-qrcp-0.9.1_GH0.tar.gz) = 26509877
+SHA256 (adrg-xdg-v0.3.2_GH0.tar.gz) = 88a9298499e2bbc287edf66aa454d753dece2df05853cabd8be46c8a970f4d0f
+SIZE (adrg-xdg-v0.3.2_GH0.tar.gz) = 16121
+SHA256 (asaskevich-govalidator-475eaeb16496_GH0.tar.gz) = 72b597629e12ec2089e3e39bba37e8ee8c90efb89dcaea5dff1c214f39236377
+SIZE (asaskevich-govalidator-475eaeb16496_GH0.tar.gz) = 57023
+SHA256 (cheggaaa-pb-v1.0.28_GH0.tar.gz) = f745c5636d3fb59bffab5f9d2a745a94a9608166c20c90936fc66848a5e816e6
+SIZE (cheggaaa-pb-v1.0.28_GH0.tar.gz) = 11788
+SHA256 (chzyer-readline-2972be24d48e_GH0.tar.gz) = 8f425cfb33fce61a137866c0a88117c68f49de79a61a341353fc97339c6b74da
+SIZE (chzyer-readline-2972be24d48e_GH0.tar.gz) = 36825
+SHA256 (eiannone-keyboard-caf4b762e807_GH0.tar.gz) = ff1a40d8bdbb725c857d77ca97731d4577b8c312284489f4660dc0a216270154
+SIZE (eiannone-keyboard-caf4b762e807_GH0.tar.gz) = 8562
+SHA256 (fatih-color-v1.9.0_GH0.tar.gz) = f5a6372ff7c87d22baaa2089e5cdd8a218fb3a9be047195c0ab421d5340f6f3f
+SIZE (fatih-color-v1.9.0_GH0.tar.gz) = 1230941
+SHA256 (glendc-go-external-ip-139229dcdddd_GH0.tar.gz) = b1fa222d7f35405f70c5855112dc6b954eb68e800f81a8b69ae3adba1537f03c
+SIZE (glendc-go-external-ip-139229dcdddd_GH0.tar.gz) = 5655
+SHA256 (golang-sys-d5e6a3e2c0ae_GH0.tar.gz) = 6cd44aa33cb0fc4caedadde44b3a943bece0aa67d803c00bfb09b03222845f19
+SIZE (golang-sys-d5e6a3e2c0ae_GH0.tar.gz) = 1539001
+SHA256 (inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 5edc7731c819c305623568e317aa253d342be3447def97f1fa9e10eb5ad819f6
+SIZE (inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 2290
+SHA256 (jhoonb-archivex-0488e4ce1681_GH0.tar.gz) = 84c94690499715a43f79f69d03437dac7ed6348af1c044ff4f539dbb832df9d5
+SIZE (jhoonb-archivex-0488e4ce1681_GH0.tar.gz) = 5175
+SHA256 (juju-ansiterm-720a0952cc2a_GH0.tar.gz) = 5595c2dc8973aab36a69648d4d94cac75a9ff4a28eb074a7b82b030fc7edbf64
+SIZE (juju-ansiterm-720a0952cc2a_GH0.tar.gz) = 15417
+SHA256 (lunixbochs-vtclean-2d01aacdc34a_GH0.tar.gz) = 54676064363394819c85f04ffd3aa41c86bcd2c9fce3c7e58b6ea41a47e17442
+SIZE (lunixbochs-vtclean-2d01aacdc34a_GH0.tar.gz) = 4183
+SHA256 (manifoldco-promptui-v0.7.0_GH0.tar.gz) = 90a38ed9e5d993929b62dd2f1e13c7d3c70d0b57546c7329588f9d493f4c8a47
+SIZE (manifoldco-promptui-v0.7.0_GH0.tar.gz) = 26664
+SHA256 (mattn-go-colorable-v0.1.6_GH0.tar.gz) = e313129503025c383b5e69082fb1144e83a864d12ec45bb7a224d3fc4a635fbc
+SIZE (mattn-go-colorable-v0.1.6_GH0.tar.gz) = 9472
+SHA256 (mattn-go-isatty-v0.0.12_GH0.tar.gz) = addbdc341d7685ed4cc8d2d8a8fd2bd9b784bde00d0ea99fb251039fc10c611c
+SIZE (mattn-go-isatty-v0.0.12_GH0.tar.gz) = 4548
+SHA256 (mattn-go-runewidth-v0.0.9_GH0.tar.gz) = 4f20a337ad06e071f29535afe9c5207d3e8840c8c86672bbc5f9837c6229c835
+SIZE (mattn-go-runewidth-v0.0.9_GH0.tar.gz) = 16714
+SHA256 (skip2-go-qrcode-9434209cb086_GH0.tar.gz) = d1b92830ad7b8133bb3d5fd1942bf15fb85f6da9fead30016bf90ee31f932ad9
+SIZE (skip2-go-qrcode-9434209cb086_GH0.tar.gz) = 36087
+SHA256 (spf13-cobra-v1.0.0_GH0.tar.gz) = 58dbfe1b4dbc6751575e94d1e62d073098e0b41790bc1c7a7a95ec6b870ac697
+SIZE (spf13-cobra-v1.0.0_GH0.tar.gz) = 128897
+SHA256 (spf13-pflag-v1.0.3_GH0.tar.gz) = 9e57f86f493f04d9077fccd04e7139ebf243dd544e917ab83d35729b3e54a124
+SIZE (spf13-pflag-v1.0.3_GH0.tar.gz) = 46002
diff --git a/net/qrcp/pkg-descr b/net/qrcp/pkg-descr
new file mode 100644
index 000000000000..397c75abb6ed
--- /dev/null
+++ b/net/qrcp/pkg-descr
@@ -0,0 +1,8 @@
+Transfer files over Wi-Fi from your computer to a mobile device by
+scanning a QR code without leaving the terminal.
+
+qrcp binds a web server to the address of your Wi-Fi network interface
+on a random port and creates a handler for it. The default handler
+serves the content and exits the program when the transfer is
+complete. When used to receive files, qrcp serves an upload page and
+handles the transfer.