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>