everything related to duct tape audio suite (dtas)
 help / color / mirror / code / Atom feed
 Warning: Initial query:
 %22Add zsh completion support%22
 returned no results, used:
 "Add zsh completion support"
 instead

Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH] Add zsh completion support
@ 2019-11-06  6:52  2% James Rowe
  2019-11-09  9:21  7% ` Eric Wong
  0 siblings, 1 reply; 4+ results
From: James Rowe @ 2019-11-06  6:52 UTC (permalink / raw)
  To: dtas-all; +Cc: James Rowe

This adds completion support for all the current commands, including
completion for sink and source names where they are used.

---

  [My apologies that it took me a few days to get around to updating
this, and thanks for the push to reach a little further ;)]

  This patch supersedes the version I attached earlier. Differences to
the previous version:

* All the commands where completion makes sense are supported,
* The capitalisation and formatting patterns of zsh’s included rules are
  used.

Thanks,

James

 examples/zsh-completion/README           |   3 +
 examples/zsh-completion/_dtas-archive    |  16 ++++
 examples/zsh-completion/_dtas-ctl        | 114 +++++++++++++++++++++++
 examples/zsh-completion/_dtas-cueedit    |   7 ++
 examples/zsh-completion/_dtas-enq        |   7 ++
 examples/zsh-completion/_dtas-mlib       |  29 ++++++
 examples/zsh-completion/_dtas-msinkctl   |   8 ++
 examples/zsh-completion/_dtas-partstats  |   7 ++
 examples/zsh-completion/_dtas-sinkedit   |  11 +++
 examples/zsh-completion/_dtas-sourceedit |  11 +++
 examples/zsh-completion/_dtas-splitfx    |  17 ++++
 examples/zsh-completion/_dtas-tl         |  52 +++++++++++
 examples/zsh-completion/_dtas-xdelay     |  17 ++++
 13 files changed, 299 insertions(+)
 create mode 100644 examples/zsh-completion/README
 create mode 100644 examples/zsh-completion/_dtas-archive
 create mode 100644 examples/zsh-completion/_dtas-ctl
 create mode 100644 examples/zsh-completion/_dtas-cueedit
 create mode 100644 examples/zsh-completion/_dtas-enq
 create mode 100644 examples/zsh-completion/_dtas-mlib
 create mode 100644 examples/zsh-completion/_dtas-msinkctl
 create mode 100644 examples/zsh-completion/_dtas-partstats
 create mode 100644 examples/zsh-completion/_dtas-sinkedit
 create mode 100644 examples/zsh-completion/_dtas-sourceedit
 create mode 100644 examples/zsh-completion/_dtas-splitfx
 create mode 100644 examples/zsh-completion/_dtas-tl
 create mode 100644 examples/zsh-completion/_dtas-xdelay

diff --git a/examples/zsh-completion/README b/examples/zsh-completion/README
new file mode 100644
index 0000000..89b3afd
--- /dev/null
+++ b/examples/zsh-completion/README
@@ -0,0 +1,3 @@
+To use the completion functions defined in this directory either: add
+the completions you wish to use to a directory in your $fpath, or add
+this directory's path to $fpath *prior* to calling compinit.
diff --git a/examples/zsh-completion/_dtas-archive b/examples/zsh-completion/_dtas-archive
new file mode 100644
index 0000000..2bfdf7e
--- /dev/null
+++ b/examples/zsh-completion/_dtas-archive
@@ -0,0 +1,16 @@
+#compdef dtas-archive
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments -S \
+    "--type=[file type]" \
+    "--compression=[compression factor for sox]:select compression:({0..8})" \
+    "--jobs=[number of jobs]: :_guard '[0-9]#' value" \
+    "--stats[save stats on the file]" \
+    "--keep-going[continue after error]" \
+    "--dry-run[only print commands, do not run them]" \
+    "--repeat=[number of times to check]: :_guard '[0-9]#' value" \
+    "--help[display help message]" \
+    ":select source:_files" \
+    ":select destination:_files"
diff --git a/examples/zsh-completion/_dtas-ctl b/examples/zsh-completion/_dtas-ctl
new file mode 100644
index 0000000..d82533b
--- /dev/null
+++ b/examples/zsh-completion/_dtas-ctl
@@ -0,0 +1,114 @@
+#compdef dtas-ctl
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    ':dtas-ctl command:((
+        cd\:"change the current working directory of the player"
+        clear\:"clear current queue"
+        cue\:"display the index/offsets of the embedded CUE sheet"
+        current\:"output information about the current track/command in YAML"
+        enq\:"enqueue the given FILENAME for playback"
+        enq-cmd\:"run the following command for playback"
+        env\:"set/unset environment variables"
+        format\:"configure the format between source and sink"
+        pause\:"pause playback"
+        play\:"restart playback from pause"
+        play_pause\:"toggle the play/pause state"
+        queue\ cat\:"dump the contents of the queue as YAML"
+        restart\:"restarts all processes in the current pipeline"
+        rg\:"configure ReplayGain support"
+        seek\:"seek the current track to a specified time"
+        skip\:"abort current track/command"
+        sink\:"control sinks"
+        source\:"control sources"
+        state\ dump\:"immediately dump the state of the player"
+        tl\:"control tracklist"
+        trim\:"limits playback of all tracks in the tracklist"
+        watch\:"adds the client to the passive watch list for notifications"
+    ))' \
+    "*::subcmd:->subcmd" && return 0
+
+case "$words[1]" in
+(cd)
+    _arguments \
+        ":select dir:_path_files -/"
+    ;;
+(cue)
+    _arguments \
+        ':dtas-ctl command:((
+            next\:"skip to the next cue sheet offset"
+            prev\:"skip to the previous cue sheet offset"
+            goto\:"go to the cue index"
+            seek\:"seek within the current cue index"
+        ))'
+    ;;
+(enq)
+    _arguments \
+        "*:select file:_files"
+    ;;
+(format)
+    _arguments \
+        '*:dtas-ctl format command:((
+            channels\:"number of channels to use internally"
+            endian\:"change endianess"
+            bits\:"sample precision"
+            rate\:"sample rate of audio"
+            type\:"change the raw PCM format"
+        ))'
+    ;;
+(seek)
+    _arguments \
+        ":select track:_guard '[0-9]#' 'track number'"
+    ;;
+(sink)
+    _arguments \
+        ':sink subcommand:((
+            ls\:"list names of current sinks"
+            cat\:"dump SINKNAME config in YAML"
+            rm\:"remove SINKNAME"
+            ed\:"create/edit SINKNAME"
+        ))'
+    ;;
+(source)
+    _arguments \
+        ':source subcommand:((
+            cat\:"dump the current source command and env in YAML"
+            ed\:"edit the source parameters"
+            ls\:"dump the names of sources sorted by tryorder"
+            restart\:"restart the current source command"
+        ))'
+    ;;
+(state dump)
+    _arguments \
+        ":select file:_files"
+    ;;
+(tl)
+    _arguments \
+        ':tl subcommand:((
+            add\:"add files to the tracklist"
+            clear\:"clear current tracklist"
+            consume\:"show/or change consume status of the tracklist"
+            current\:"display the pathname to the currently playing track"
+            current-id\:"display the TRACKID of the currently playing track"
+            remove\:"remove the track with the given TRACKID from the track list"
+            get\:"returns a list of TRACKIDS mapped to shell-escaped filenames"
+            goto\:"plays the given TRACKID"
+            max\:"sets or gets the maximum number of tracks allowed in the tracklist"
+            next\:"jump to the next track in the tracklist"
+            prev\:"jump to the previous track in the tracklist"
+            repeat\:"show/or change repeat status of the tracklist"
+            shuffle\:"show/or change the current shuffle status of the tracklist"
+            swap\:"swaps the positions of two tracks"
+            tracks\:"returns a list of all TRACKIDS in the tracklist"
+        ))'
+    ;;
+(trim)
+    _arguments \
+        ":select beginning" \
+        ":select end"
+    ;;
+(*)
+    ;;
+esac
diff --git a/examples/zsh-completion/_dtas-cueedit b/examples/zsh-completion/_dtas-cueedit
new file mode 100644
index 0000000..ac87822
--- /dev/null
+++ b/examples/zsh-completion/_dtas-cueedit
@@ -0,0 +1,7 @@
+#compdef dtas-cueedit
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    ':select file:_files -g "*.flac"'
diff --git a/examples/zsh-completion/_dtas-enq b/examples/zsh-completion/_dtas-enq
new file mode 100644
index 0000000..a8f9c3f
--- /dev/null
+++ b/examples/zsh-completion/_dtas-enq
@@ -0,0 +1,7 @@
+#compdef dtas-enq
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    "*:select file:_files"
diff --git a/examples/zsh-completion/_dtas-mlib b/examples/zsh-completion/_dtas-mlib
new file mode 100644
index 0000000..24418ea
--- /dev/null
+++ b/examples/zsh-completion/_dtas-mlib
@@ -0,0 +1,29 @@
+#compdef dtas-mlib
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+#
+_arguments \
+    "--database=[database]:select file:_files" \
+    "--force[force updates]" \
+    "--help[display help message]" \
+    ':dtas-mlib action:((
+            dump\:"dump database"
+            search\:"search database"
+            stats\:"display statistics"
+            update\:"migrate database"
+        ))' \
+    "*::subcmd:->subcmd" && return 0
+
+case "$words[1]" in
+(dump|update)
+    _arguments -S \
+        ":select directory:_path_files -/"
+    ;;
+(search)
+    _arguments -S \
+        "*:search term:"
+    ;;
+(*)
+    ;;
+esac
diff --git a/examples/zsh-completion/_dtas-msinkctl b/examples/zsh-completion/_dtas-msinkctl
new file mode 100644
index 0000000..941c23b
--- /dev/null
+++ b/examples/zsh-completion/_dtas-msinkctl
@@ -0,0 +1,8 @@
+#compdef dtas-msinkctl
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    "1:select action:(active{,-{set,add,sub}} nonblock)" \
+    "*:select sink:($(dtas-ctl sink ls 2> /dev/null))"
diff --git a/examples/zsh-completion/_dtas-partstats b/examples/zsh-completion/_dtas-partstats
new file mode 100644
index 0000000..9460684
--- /dev/null
+++ b/examples/zsh-completion/_dtas-partstats
@@ -0,0 +1,7 @@
+#compdef dtas-partstats
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    ":select file:_files"
diff --git a/examples/zsh-completion/_dtas-sinkedit b/examples/zsh-completion/_dtas-sinkedit
new file mode 100644
index 0000000..be6de53
--- /dev/null
+++ b/examples/zsh-completion/_dtas-sinkedit
@@ -0,0 +1,11 @@
+#compdef dtas-sinkedit
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    "--no-watch[disable inotify support]" \
+    "--dry-run[only print commands, do not run them]" \
+    "--verbose[print out commands sent to change the sink]" \
+    "--help[display help message]" \
+    ":select sink:($(dtas-ctl sink ls 2> /dev/null))"
diff --git a/examples/zsh-completion/_dtas-sourceedit b/examples/zsh-completion/_dtas-sourceedit
new file mode 100644
index 0000000..56da661
--- /dev/null
+++ b/examples/zsh-completion/_dtas-sourceedit
@@ -0,0 +1,11 @@
+#compdef dtas-sourceedit
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    "--no-watch[disable inotify support]" \
+    "--dry-run[only print commands, do not run them]" \
+    "--verbose[print out commands sent to change the source]" \
+    "--help[display help message]" \
+    ":select source:($(dtas-ctl source ls 2> /dev/null))"
diff --git a/examples/zsh-completion/_dtas-splitfx b/examples/zsh-completion/_dtas-splitfx
new file mode 100644
index 0000000..dfebb64
--- /dev/null
+++ b/examples/zsh-completion/_dtas-splitfx
@@ -0,0 +1,17 @@
+#compdef dtas-splitfx
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments -S \
+    "--dry-run[only print commands, do not run them]" \
+    "--jobs=[number of jobs]: :_guard '[0-9]#' value" \
+    "--no-dither[don't apply sox dithering]" \
+    "--outdir=[select output directory]:select directory:_path_files -/" \
+    "--compression=[compression factor for sox]:select compression:({0..8})" \
+    "--rate=[sample rate of audio]:select sample rate:(22050 44100 48000)" \
+    "--bits=[sample precision]:select precision:(8 16 24)" \
+    "--trim=[sections of audio to cut]:select sections:_guard '[0-9,]#' 'value'" \
+    "--sox-pipe[use as pipeline]" \
+    '1:select splitfx file:_files -g "*.yml"' \
+    "*:select file:_files"
diff --git a/examples/zsh-completion/_dtas-tl b/examples/zsh-completion/_dtas-tl
new file mode 100644
index 0000000..8e2b098
--- /dev/null
+++ b/examples/zsh-completion/_dtas-tl
@@ -0,0 +1,52 @@
+#compdef dtas-tl
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments \
+    ':dtas-tl command:((
+       aac\:"add tracks after current track in the tracklist"
+       addhead\:"add tracks to the beginning of the tracklist"
+       addtail\:"add tracks to the end of the tracklist"
+       consume\:"enabling \"consume\" mode"
+       current\:"display the current track"
+       current-id\:"display the track of the current track"
+       cat\:"display a tracklist"
+       clear\:"remove all tracks from the tracklist"
+       edit\:"spawn an editor to allow editing the tracklist"
+       goto\:"play track immediately"
+       reto\:"play track matching regular expression"
+       next\:"play the next track in the tracklist"
+       prev\:"play the previous track in the tracklist"
+       repeat\:"control track repeating"
+       shuffle\:"control playback randomization"
+    ))' \
+    "*::subcmd:->subcmd" && return 0
+
+case "$words[1]" in
+(aac|addtail)
+    _arguments \
+        ":select file:_files"
+    ;;
+(addhead)
+    _arguments \
+        "*:select file:_files"
+    ;;
+(consume|repeat|shuffle)
+    _arguments \
+        ":select state:(true false)"
+    ;;
+(goto)
+    _arguments \
+        ":select track:($(dtas-ctl tl tracks 2> /dev/null))"
+    ;;
+(reto)
+    _arguments \
+        "-F[use fixed strings]" \
+        "-i[ignore case]" \
+        ":search term" \
+        ":select beginning"
+    ;;
+(*)
+    ;;
+esac
diff --git a/examples/zsh-completion/_dtas-xdelay b/examples/zsh-completion/_dtas-xdelay
new file mode 100644
index 0000000..356537d
--- /dev/null
+++ b/examples/zsh-completion/_dtas-xdelay
@@ -0,0 +1,17 @@
+#compdef dtas-xdelay
+
+# To the extent possible under law, James Rowe has waived all copyright and
+# related or neighboring rights to this example.
+
+_arguments -S \
+    "--crossover-frequency=[frequency at which to set the crossover]: :_guard '[0-9]#' frequency" \
+    "--lowpass-delay[delay the lowpass frequency instead of the highpass one]" \
+    "--channels=[number of channels]:select channels:(1 2)" \
+    "--rate=[sample rate of audio]:select sample rate:(22050 44100 48000)" \
+    "--type=[file type]:select output type:($(sox --help 2> /dev/null | sed -n '/AUDIO FILE FORMATS/s/.*: //p'))" \
+    "--dry-run[only print commands, do not run them]" \
+    "--lowpass=[Custom format string for lowpass filter]" \
+    "--highpass=[Custom format string for highpass filter]" \
+    ":select input1:_files" \
+    ":select input2:_files" \
+    ":select delay:_guard '[0-9]#' delay"
-- 
2.20.1



^ permalink raw reply related	[relevance 2%]

* Re: [PATCH] Add zsh completion support
  2019-11-06  6:52  2% [PATCH] Add zsh completion support James Rowe
@ 2019-11-09  9:21  7% ` Eric Wong
  2019-11-09 17:53  7%   ` James Rowe
  0 siblings, 1 reply; 4+ results
From: Eric Wong @ 2019-11-09  9:21 UTC (permalink / raw)
  To: James Rowe; +Cc: dtas-all

James Rowe <jnrowe@gmail.com> wrote:
> This adds completion support for all the current commands, including
> completion for sink and source names where they are used.

Cool.  Applied and pushed to master.

>   [My apologies that it took me a few days to get around to updating
> this, and thanks for the push to reach a little further ;)]

No worries.  I've barely had computer time at all this week.

>   This patch supersedes the version I attached earlier. Differences to
> the previous version:
> 
> * All the commands where completion makes sense are supported,
> * The capitalisation and formatting patterns of zsh’s included rules are
>   used.

OK, I noticed some long lines (>80 columns).  Not a showstopper,
so I applied it anyways.

Haven't tested zsh, yet; it's been on my "to learn" list for 16 years,
now? :x


^ permalink raw reply	[relevance 7%]

* Re: [PATCH] Add zsh completion support
  2019-11-09  9:21  7% ` Eric Wong
@ 2019-11-09 17:53  7%   ` James Rowe
  0 siblings, 0 replies; 4+ results
From: James Rowe @ 2019-11-09 17:53 UTC (permalink / raw)
  To: Eric Wong; +Cc: dtas-all

[-- Attachment #1: Type: text/plain, Size: 835 bytes --]

* Eric Wong (e@80x24.org) wrote:
> Cool.  Applied and pushed to master.

  Excellent, thanks.

> OK, I noticed some long lines (>80 columns).  Not a showstopper,
> so I applied it anyways.

  I’ll bear it in mind with improvements.

> Haven't tested zsh, yet; it's been on my "to learn" list for 16 years,
> now? :x

  I know you didn’t ask, but my unsolicited 2¢…  Try a pre-made
distribution like oh-my-zsh¹ to see how cool it can be when configured
well, as the default zsh configuration is *very* barren.  It isn’t hard
to build your own configuration later should you wish, but without
having at least seen all the features upfront it isn’t easy to see the
value in switching.

Thanks,

James

1. https://github.com/robbyrussell/oh-my-zsh

-- 

☒ Vote to destroy email signatures today!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[relevance 7%]

* [ANN] dtas 0.17.0 - duct tape audio suite for *nix
@ 2019-11-14  1:56  6% Eric Wong
  0 siblings, 0 replies; 4+ results
From: Eric Wong @ 2019-11-14  1:56 UTC (permalink / raw)
  To: ruby-talk, dtas-all

Free Software command-line tools for audio playback, mastering, and
whatever else related to audio.  dtas follows the worse-is-better
philosophy and acts as duct tape to combine existing command-line tools
for flexibility and ease-of-development.  dtas is currently implemented
in Ruby (and some embedded shell), but may use other languages in the
future.

Changes:

    dtas 0.17.0

    dtas-player automatically pauses on sink death (e.g. when an
    external DAC is unplugged), thanks to Rene Maurer for the
    feature suggestion.

    zsh completions are also bundled in the examples/ directory
    thanks to James Rowe.

    There's also a couple of minor bugfixes and documentation
    updates.

    There's also kwarg warning fixes for Ruby 2.7.0dev.  Future
    components will probably use a more stable glue language
    than Ruby, and we already have dtas-graph which is Perl5.

    Eric Wong (11):
          doc: remove inaccurate comment about "GNU-ism"
          doc: update homepage to point to cgit /about/
          dtas-graph: show inode number in hex, too
          dtas-graph: add a short blurb about what it does
          dtas-console: remove unused variables
          dtas-console: pass kwargs as-is to String#encode
          buffer/splice: pass kwargs as-is to tee/splice
          player: automatically pause if last sink dies
          readahead: avoid Array#compact and Array#max on `false'
          doc: use new HTTPS address at lists.gnu.org
          TODO: add a note about using a more stable glue language

    James Rowe (2):
          doc: trivial typo fixes
          Add zsh completion support

* homepage: https://80x24.org/dtas.git/about
* https://80x24.org/dtas/INSTALL
* https://80x24.org/dtas/dtas-player.txt
* https://80x24.org/dtas/NEWS.atom
* git clone https://80x24.org/dtas.git
* dtas-all@nongnu.org (plain-text only, no HTML mail, please)
* mail archives: https://80x24.org/dtas-all/
  nntp://news.public-inbox.org/inbox.comp.audio.dtas
  https://80x24.org/dtas-all/new.atom


^ permalink raw reply	[relevance 6%]

Results 1-4 of 4 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2019-11-06  6:52  2% [PATCH] Add zsh completion support James Rowe
2019-11-09  9:21  7% ` Eric Wong
2019-11-09 17:53  7%   ` James Rowe
2019-11-14  1:56  6% [ANN] dtas 0.17.0 - duct tape audio suite for *nix Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/dtas.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).