Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Apr 2021 16:39:18 GMT
From:      Lewis Cook <lcook@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 6e81045d93b2 - main - New port: audio/visp-go: Vi-like Spotify client for terminal users
Message-ID:  <202104221639.13MGdIeV026740@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by lcook:

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

commit 6e81045d93b2c62248996e42b2e9b7044f6c9a76
Author:     Lewis Cook <lcook@FreeBSD.org>
AuthorDate: 2021-04-22 16:36:27 +0000
Commit:     Lewis Cook <lcook@FreeBSD.org>
CommitDate: 2021-04-22 16:38:16 +0000

    New port: audio/visp-go: Vi-like Spotify client for terminal users
---
 audio/visp-go/Makefile             | 80 +++++++++++++++++++++++++++++++++++++
 audio/visp-go/distinfo             | 81 ++++++++++++++++++++++++++++++++++++++
 audio/visp-go/files/pkg-message.in | 35 ++++++++++++++++
 audio/visp-go/pkg-descr            | 11 ++++++
 4 files changed, 207 insertions(+)

diff --git a/audio/visp-go/Makefile b/audio/visp-go/Makefile
new file mode 100644
index 000000000000..a4194a6c4f3e
--- /dev/null
+++ b/audio/visp-go/Makefile
@@ -0,0 +1,80 @@
+PORTNAME=	visp-go
+DISTVERSION=	g20210422
+CATEGORIES=	audio
+
+MAINTAINER=	lcook@FreeBSD.org
+COMMENT=	Vi-like Spotify client for terminal users
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		go:modules
+USE_GITHUB=	yes
+GH_ACCOUNT=	ambientsound
+GH_PROJECT=	${PORTNAME:C/-go//}
+GH_TAGNAME=	35e21a8
+GH_TUPLE=	davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
+		fsnotify:fsnotify:v1.4.7:fsnotify_fsnotify/vendor/github.com/fsnotify/fsnotify \
+		gdamore:encoding:v1.0.0:gdamore_encoding/vendor/github.com/gdamore/encoding \
+		gdamore:tcell:v2.2.0:gdamore_tcell_v2/vendor/github.com/gdamore/tcell/v2 \
+		go-chi:chi:v1.5.4:go_chi_chi/vendor/github.com/go-chi/chi \
+		go-ini:ini:v1.51.0:go_ini_ini/vendor/gopkg.in/ini.v1 \
+		go-yaml:yaml:9f266ea9e77c:go_yaml_yaml_1/vendor/gopkg.in/yaml.v3 \
+		go-yaml:yaml:v2.2.4:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
+		golang:appengine:v1.6.7:golang_appengine/vendor/google.golang.org/appengine \
+		golang:crypto:75b288015ac9:golang_crypto/vendor/golang.org/x/crypto \
+		golang:net:afb366fc7cd1:golang_net/vendor/golang.org/x/net \
+		golang:oauth2:2e8d93401602:golang_oauth2/vendor/golang.org/x/oauth2 \
+		golang:protobuf:v1.5.2:golang_protobuf/vendor/github.com/golang/protobuf \
+		golang:sys:66c3f260301c:golang_sys/vendor/golang.org/x/sys \
+		golang:term:2321bbc49cbf:golang_term/vendor/golang.org/x/term \
+		golang:text:v0.3.6:golang_text/vendor/golang.org/x/text \
+		google:uuid:v1.1.1:google_uuid/vendor/github.com/google/uuid \
+		gopherjs:gopherjs:d547d1d9531e:gopherjs_gopherjs/vendor/github.com/gopherjs/gopherjs \
+		hashicorp:hcl:v1.0.0:hashicorp_hcl/vendor/github.com/hashicorp/hcl \
+		konsorten:go-windows-terminal-sequences:v1.0.1:konsorten_go_windows_terminal_sequences/vendor/github.com/konsorten/go-windows-terminal-sequences \
+		lucasb-eyer:go-colorful:v1.2.0:lucasb_eyer_go_colorful/vendor/github.com/lucasb-eyer/go-colorful \
+		magiconair:properties:v1.8.1:magiconair_properties/vendor/github.com/magiconair/properties \
+		mattn:go-runewidth:v0.0.12:mattn_go_runewidth/vendor/github.com/mattn/go-runewidth \
+		mitchellh:mapstructure:v1.1.2:mitchellh_mapstructure/vendor/github.com/mitchellh/mapstructure \
+		pelletier:go-toml:v1.2.0:pelletier_go_toml/vendor/github.com/pelletier/go-toml \
+		pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
+		protocolbuffers:protobuf-go:v1.26.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+		rivo:uniseg:v0.2.0:rivo_uniseg/vendor/github.com/rivo/uniseg \
+		sirupsen:logrus:v1.2.0:sirupsen_logrus/vendor/github.com/sirupsen/logrus \
+		smartystreets:assertions:b6c0e53d7304:smartystreets_assertions/vendor/github.com/smartystreets/assertions \
+		spf13:afero:v1.1.2:spf13_afero/vendor/github.com/spf13/afero \
+		spf13:cast:v1.3.0:spf13_cast/vendor/github.com/spf13/cast \
+		spf13:jwalterweatherman:v1.0.0:spf13_jwalterweatherman/vendor/github.com/spf13/jwalterweatherman \
+		spf13:pflag:v1.0.5:spf13_pflag/vendor/github.com/spf13/pflag \
+		spf13:viper:v1.6.1:spf13_viper/vendor/github.com/spf13/viper \
+		stretchr:objx:v0.1.1:stretchr_objx/vendor/github.com/stretchr/objx \
+		stretchr:testify:v1.7.0:stretchr_testify/vendor/github.com/stretchr/testify \
+		subosito:gotenv:v1.2.0:subosito_gotenv/vendor/github.com/subosito/gotenv \
+		zmb3:spotify:v1.1.2:zmb3_spotify/vendor/github.com/zmb3/spotify
+
+_BUILD_VERSION=	${GH_TAGNAME}
+_BUILD_DATE=	$$(date +%s)
+
+GO_TARGET=	./cmd/${GH_PROJECT} ./cmd/${GH_PROJECT}-authproxy
+GO_BUILDFLAGS=	-ldflags "\
+		-s -w \
+        	-X github.com/${GH_ACCOUNT}/${GH_PROJECT}/version.Version=${_BUILD_VERSION}  \
+		-X github.com/${GH_ACCOUNT}/${GH_PROJECT}/version.buildDate=${_BUILD_DATE}"
+
+SUB_FILES=	pkg-message
+PLIST_FILES=	${GO_TARGET:C/.\/cmd/bin/}
+_DOCS=		CONTRIBUTING.md README.md code_of_conduct.md doc/commands.md \
+		doc/intro.md doc/spotify.md doc/options.md doc/${GH_PROJECT}.md
+PORTDOCS=	${_DOCS:T}
+
+OPTIONS_DEFINE=	DOCS SPOTIFYD
+
+SPOTIFYD_DESC=		Lightweight Spotify client daemon
+SPOTIFYD_RUN_DEPENDS=	spotifyd:audio/spotifyd
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	cd ${WRKSRC} && ${INSTALL_DATA} ${_DOCS} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/audio/visp-go/distinfo b/audio/visp-go/distinfo
new file mode 100644
index 000000000000..2c0a37a7f93f
--- /dev/null
+++ b/audio/visp-go/distinfo
@@ -0,0 +1,81 @@
+TIMESTAMP = 1619107132
+SHA256 (ambientsound-visp-g20210422-35e21a8_GH0.tar.gz) = b428519e9bd01abe72ac68576b806c08172ef63bc241a19c035722151d25f181
+SIZE (ambientsound-visp-g20210422-35e21a8_GH0.tar.gz) = 273404
+SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
+SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
+SHA256 (fsnotify-fsnotify-v1.4.7_GH0.tar.gz) = b7530d973d0ab0e58ad8ce1b9a4b963d6f57b3d72f2f9e13d49846976361b1cd
+SIZE (fsnotify-fsnotify-v1.4.7_GH0.tar.gz) = 31139
+SHA256 (gdamore-encoding-v1.0.0_GH0.tar.gz) = 8fb8593a69cd86f16233d63dd6d74181136ec8f22900c509e961a25eb4b2e013
+SIZE (gdamore-encoding-v1.0.0_GH0.tar.gz) = 10886
+SHA256 (gdamore-tcell-v2.2.0_GH0.tar.gz) = 644d13591983668b8163d1eaf3747344f090dfabc39add2b734e73d099b753a5
+SIZE (gdamore-tcell-v2.2.0_GH0.tar.gz) = 150294
+SHA256 (go-chi-chi-v1.5.4_GH0.tar.gz) = b34ffd43c478f3744294c684674f651a4aa67d5f4112b7f5991b613d2d4a4874
+SIZE (go-chi-chi-v1.5.4_GH0.tar.gz) = 81105
+SHA256 (go-ini-ini-v1.51.0_GH0.tar.gz) = 6c98311d375afbe36a246c5d29acb5cb428634a4186e591ce9b7fe2fa4f2a471
+SIZE (go-ini-ini-v1.51.0_GH0.tar.gz) = 43536
+SHA256 (go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 63efc9aabcbb56b2c9469927784fd67ecb3a79720c4fa754c511335a04156d04
+SIZE (go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 86898
+SHA256 (go-yaml-yaml-v2.2.4_GH0.tar.gz) = 9004c9709200d52ef6e5c69af3f71f3adb1a2b7e884ea7597f306bf54b1f007c
+SIZE (go-yaml-yaml-v2.2.4_GH0.tar.gz) = 72209
+SHA256 (golang-appengine-v1.6.7_GH0.tar.gz) = c623d81235f7c9699e299b328191d813337dd57dcc800d7afdb5130e8c321a8f
+SIZE (golang-appengine-v1.6.7_GH0.tar.gz) = 333007
+SHA256 (golang-crypto-75b288015ac9_GH0.tar.gz) = 6e74e21bf9dfdbf0a8dac8cb205fbc3bfd8dff308a24080b9d6093a3858f0db2
+SIZE (golang-crypto-75b288015ac9_GH0.tar.gz) = 1729931
+SHA256 (golang-net-afb366fc7cd1_GH0.tar.gz) = 897c59e6bb8851550cdaa131e1d0c51502f537194de846918f532c463a4518ca
+SIZE (golang-net-afb366fc7cd1_GH0.tar.gz) = 1249394
+SHA256 (golang-oauth2-2e8d93401602_GH0.tar.gz) = 666f0dd6ef39ba66a52c7fc02c8730be742a5f14419fc7c3a70f0442f6a5bc92
+SIZE (golang-oauth2-2e8d93401602_GH0.tar.gz) = 79381
+SHA256 (golang-protobuf-v1.5.2_GH0.tar.gz) = 088cc0f3ba18fb8f9d00319568ff0af5a06d8925a6e6cb983bb837b4efb703b3
+SIZE (golang-protobuf-v1.5.2_GH0.tar.gz) = 171702
+SHA256 (golang-sys-66c3f260301c_GH0.tar.gz) = c694fdfa95b4b21d3bc777019b1f2422e56c5f57f049bd8f485bab5fa19cbba1
+SIZE (golang-sys-66c3f260301c_GH0.tar.gz) = 1219296
+SHA256 (golang-term-2321bbc49cbf_GH0.tar.gz) = 72896f6aa3deb053da5b597ab072ba5c3540b29d0fb56f350397b7f94c010e21
+SIZE (golang-term-2321bbc49cbf_GH0.tar.gz) = 15281
+SHA256 (golang-text-v0.3.6_GH0.tar.gz) = f66bebcf21985b0a713d67c6c35dfc9800d3b6d00d62b83ed0ce5b2ed4cb9760
+SIZE (golang-text-v0.3.6_GH0.tar.gz) = 8351095
+SHA256 (google-uuid-v1.1.1_GH0.tar.gz) = bebd4b0b4ea152a9793615ef23c83f688876d8c284a2092264d20a4bf4ffc423
+SIZE (google-uuid-v1.1.1_GH0.tar.gz) = 13543
+SHA256 (gopherjs-gopherjs-d547d1d9531e_GH0.tar.gz) = 9f24adce5539b96eaeae86b6b6b34c3b5d4b54b5552779f1919d583ef2045378
+SIZE (gopherjs-gopherjs-d547d1d9531e_GH0.tar.gz) = 217297
+SHA256 (hashicorp-hcl-v1.0.0_GH0.tar.gz) = 50632428210503070fd2fde748c88b7414bf84a6a0eadebf9d8e596a033bead2
+SIZE (hashicorp-hcl-v1.0.0_GH0.tar.gz) = 70658
+SHA256 (konsorten-go-windows-terminal-sequences-v1.0.1_GH0.tar.gz) = e36c5a5de388bf72db3037b47f025b09e574be8d0bc74b3e44c960cba0880e87
+SIZE (konsorten-go-windows-terminal-sequences-v1.0.1_GH0.tar.gz) = 1909
+SHA256 (lucasb-eyer-go-colorful-v1.2.0_GH0.tar.gz) = b3ee835cc398287452377266313edcc231043bae4168f8d2706e5d34ce1ce755
+SIZE (lucasb-eyer-go-colorful-v1.2.0_GH0.tar.gz) = 970830
+SHA256 (magiconair-properties-v1.8.1_GH0.tar.gz) = 4449df3d2be86608bfc997228f66f1cff57bf620cc5bf9ba44339c7e4c5612dd
+SIZE (magiconair-properties-v1.8.1_GH0.tar.gz) = 29735
+SHA256 (mattn-go-runewidth-v0.0.12_GH0.tar.gz) = 5fe59a999a3dffe33595d8e40806bcba11aa447cd73eb60a8b9a7f8b724a232f
+SIZE (mattn-go-runewidth-v0.0.12_GH0.tar.gz) = 17354
+SHA256 (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 53fbc06b125ff1c9c73a4eb1764346932671a29c67a45a92e2ebc6855635069b
+SIZE (mitchellh-mapstructure-v1.1.2_GH0.tar.gz) = 20980
+SHA256 (pelletier-go-toml-v1.2.0_GH0.tar.gz) = 1a5a620f680033f17e34148bee8f26d96d8c27ff1d7f56f0fe1c7253595b5244
+SIZE (pelletier-go-toml-v1.2.0_GH0.tar.gz) = 57496
+SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
+SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
+SHA256 (protocolbuffers-protobuf-go-v1.26.0_GH0.tar.gz) = 26218474bcf776ecf32d7d194c6bfaca8e7b4f0c087e5b595fd50fbb31409676
+SIZE (protocolbuffers-protobuf-go-v1.26.0_GH0.tar.gz) = 1270215
+SHA256 (rivo-uniseg-v0.2.0_GH0.tar.gz) = 3ad738b5c9162ede110d75b23564b6e40e52dd9150ebbced402f4f70be106197
+SIZE (rivo-uniseg-v0.2.0_GH0.tar.gz) = 44036
+SHA256 (sirupsen-logrus-v1.2.0_GH0.tar.gz) = 679aa05d23ca81b74f1327e7a25267a322dc9fd807a276e73e781f62ee679c6d
+SIZE (sirupsen-logrus-v1.2.0_GH0.tar.gz) = 37794
+SHA256 (smartystreets-assertions-b6c0e53d7304_GH0.tar.gz) = eb3a9cad97b20a01dd2bfafd7baab237bec8804f325b44d041d1db0e5bc519eb
+SIZE (smartystreets-assertions-b6c0e53d7304_GH0.tar.gz) = 52164
+SHA256 (spf13-afero-v1.1.2_GH0.tar.gz) = 66554a6b09b0009340ae77c119d5a14e2460bb3aea56e75e138c87e621f3803b
+SIZE (spf13-afero-v1.1.2_GH0.tar.gz) = 45309
+SHA256 (spf13-cast-v1.3.0_GH0.tar.gz) = e685282ea33f89e9354d148ad1886f532bcebe86b0b60a167988f7c6d081085f
+SIZE (spf13-cast-v1.3.0_GH0.tar.gz) = 11085
+SHA256 (spf13-jwalterweatherman-v1.0.0_GH0.tar.gz) = 2ece12b964e0d230b10851555185d42d3c81b401efda044265ae716eb1d0bc2d
+SIZE (spf13-jwalterweatherman-v1.0.0_GH0.tar.gz) = 6392
+SHA256 (spf13-pflag-v1.0.5_GH0.tar.gz) = 9a2cae1f8e8ab0d2cc8ebe468e871af28d9ac0962cf0520999e3ba85f0c7b808
+SIZE (spf13-pflag-v1.0.5_GH0.tar.gz) = 50796
+SHA256 (spf13-viper-v1.6.1_GH0.tar.gz) = 6c31cd5d8fffd6736589737e4e12f770fde4647fd01feb334d7c2aebf017c88f
+SIZE (spf13-viper-v1.6.1_GH0.tar.gz) = 51749
+SHA256 (stretchr-objx-v0.1.1_GH0.tar.gz) = 3bb0a581651f4c040435a70167ab60b723c5af04a5b0326af3c8b01ccc6fdcf0
+SIZE (stretchr-objx-v0.1.1_GH0.tar.gz) = 75768
+SHA256 (stretchr-testify-v1.7.0_GH0.tar.gz) = 560c0984072cb436b17bbce5699b205d5aa2beb58ef7a94530d7724b5739a8d6
+SIZE (stretchr-testify-v1.7.0_GH0.tar.gz) = 91073
+SHA256 (subosito-gotenv-v1.2.0_GH0.tar.gz) = 5f6826992c11981018c77377f33dbc56d0be932e0d38a2f51e795c99725e7ba5
+SIZE (subosito-gotenv-v1.2.0_GH0.tar.gz) = 7359
+SHA256 (zmb3-spotify-v1.1.2_GH0.tar.gz) = 108a5918c6a34b90c275427b9a4181ca2ac1ca49b369a54ac9eef053b2c002cc
+SIZE (zmb3-spotify-v1.1.2_GH0.tar.gz) = 116812
diff --git a/audio/visp-go/files/pkg-message.in b/audio/visp-go/files/pkg-message.in
new file mode 100644
index 000000000000..a023abd42f48
--- /dev/null
+++ b/audio/visp-go/files/pkg-message.in
@@ -0,0 +1,35 @@
+[
+{ type: install
+  message: <<EOM
+Limitations:
+============
+
+Visp requires a Spotify Premium account and will not work with free accounts.
+
+Visp is not a player, but a controller, and is thus not capable of outputting
+sound. You can run the official Spotify client in the background, play back
+on Spotify enabled devices, and if you want a headless/server it is recommend
+to use spotifyd as a Spotify client daemon.
+
+Getting started:
+================
+
+To authorize Visp to your Spotify account, please visit https://visp.site/authorize
+to get an access token. Enter your access token with :auth <TOKEN>.
+
+Visp is based around the concept of lists. Every view in Visp is a list of some kind.
+Upon starting the program, you are shown the log console, which keeps track of things
+that happen within the program. Other lists contain playlists, albums, or tracks.
+
+To get an overview of all the lists you've visited while running Visp, press w.
+
+To enter a command, type : followed by the command, then press <Enter>. While entering
+a command, you can press <Tab> to engage tab completion, which will complete the word
+you're typing, provided that Visp can guess what you're trying to do. Tab completion
+in Visp is very powerful and can recognize pretty much anything you want to accomplish.
+See command documentation for a list of all supported commands.
+
+Press <F1>, or enter the command help, at any time to show a list of key bindings.
+EOM
+}
+]
diff --git a/audio/visp-go/pkg-descr b/audio/visp-go/pkg-descr
new file mode 100644
index 000000000000..18bdc9a9cc11
--- /dev/null
+++ b/audio/visp-go/pkg-descr
@@ -0,0 +1,11 @@
+Visp is an interactive console client for Spotify, written in Go.
+Its interface is similar to Vim, and aims to be fast, configurable,
+and practical. Visp means whisk, and just like the simple mechanical
+tool it makes it easy to create that smooth and perfect mixture through
+the power of manual control, and without any unfortunate lumps.
+
+This interface has many features that involve sorting, searching, and
+navigating. It's designed to let you navigate your music collection
+effectively and efficiently.
+
+WWW: https://visp.site



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104221639.13MGdIeV026740>