Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] pueue: update to 0.12.0
@ 2021-03-08 14:04 crater2150
  2021-03-08 14:10 ` ericonr
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: crater2150 @ 2021-03-08 14:04 UTC (permalink / raw)
  To: ml

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

There is a new pull request by crater2150 against master on the void-packages repository

https://github.com/crater2150/void-packages pueue
https://github.com/void-linux/void-packages/pull/29316

pueue: update to 0.12.0
I bundled the completion files, which are generated by running `pueue completions`. Please let me know if there's a good way to run this step from the template (`pueue` is a binary, so I didn't know how to call it without breaking cross-building).

#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [ ] I generally don't use the affected packages but briefly tested this PR

#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [x] I built this PR locally for my native architecture, (x86_64)
- [x] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [x] aarch64-musl
  - [x] armv7l
  - [x] armv6l-musl

A patch file from https://github.com/void-linux/void-packages/pull/29316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pueue-29316.patch --]
[-- Type: text/x-diff, Size: 59138 bytes --]

From ecd00fff81d8a8ab21810b0b754fc45b6b302a9e Mon Sep 17 00:00:00 2001
From: Alexander Gehrke <github@qwertyuiop.de>
Date: Mon, 8 Mar 2021 14:30:09 +0100
Subject: [PATCH] pueue: update to 0.12.0

---
 srcpkgs/pueue/files/_pueue     | 505 ++++++++++++++++++++++++++++++
 srcpkgs/pueue/files/pueue.bash | 557 +++++++++++++++++++++++++++++++++
 srcpkgs/pueue/files/pueue.fish | 135 ++++++++
 srcpkgs/pueue/template         |   8 +-
 4 files changed, 1203 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/pueue/files/_pueue
 create mode 100644 srcpkgs/pueue/files/pueue.bash
 create mode 100644 srcpkgs/pueue/files/pueue.fish

diff --git a/srcpkgs/pueue/files/_pueue b/srcpkgs/pueue/files/_pueue
new file mode 100644
index 00000000000..d15b4593c80
--- /dev/null
+++ b/srcpkgs/pueue/files/_pueue
@@ -0,0 +1,505 @@
+#compdef pueue
+
+autoload -U is-at-least
+
+_pueue() {
+    typeset -A opt_args
+    typeset -a _arguments_options
+    local ret=1
+
+    if is-at-least 5.2; then
+        _arguments_options=(-s -S -C)
+    else
+        _arguments_options=(-s -C)
+    fi
+
+    local context curcontext="$curcontext" state line
+    _arguments "${_arguments_options[@]}" \
+'-c+[Path to a specific pueue config file to use. This ignores all other config files]' \
+'--config=[Path to a specific pueue config file to use. This ignores all other config files]' \
+'*-v[Verbose mode (-v, -vv, -vvv)]' \
+'*--verbose[Verbose mode (-v, -vv, -vvv)]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+":: :_pueue_commands" \
+"*::: :->Pueue client" \
+&& ret=0
+    case $state in
+    (Pueue client)
+        words=($line[1] "${words[@]}")
+        (( CURRENT += 1 ))
+        curcontext="${curcontext%:*:*}:pueue-command-$line[1]:"
+        case $line[1] in
+            (add)
+_arguments "${_arguments_options[@]}" \
+'(-i --immediate)-d+[Prevents the task from being enqueued until <delay> elapses. See "enqueue" for accepted formats]' \
+'(-i --immediate)--delay=[Prevents the task from being enqueued until <delay> elapses. See "enqueue" for accepted formats]' \
+'-g+[Assign the task to a group. Groups kind of act as separate queues. I.e. all groups run in parallel and you can specify the amount of parallel tasks for each group. If no group is specified, the default group will be used]' \
+'--group=[Assign the task to a group. Groups kind of act as separate queues. I.e. all groups run in parallel and you can specify the amount of parallel tasks for each group. If no group is specified, the default group will be used]' \
+'*-a+[Start the task once all specified tasks have successfully finished. As soon as one of the dependencies fails, this task will fail as well]' \
+'*--after=[Start the task once all specified tasks have successfully finished. As soon as one of the dependencies fails, this task will fail as well]' \
+'-l+[Add some information for yourself. This string will be shown in the "status" table. There'\''s no additional logic connected to it]' \
+'--label=[Add some information for yourself. This string will be shown in the "status" table. There'\''s no additional logic connected to it]' \
+'-e[Escape any special shell characters (" ", "&", "!", etc.). Beware: This implicitly disables basically all shell specific syntax ("&&", "&>")]' \
+'--escape[Escape any special shell characters (" ", "&", "!", etc.). Beware: This implicitly disables basically all shell specific syntax ("&&", "&>")]' \
+'(-s --stashed)-i[Immediately start the task]' \
+'(-s --stashed)--immediate[Immediately start the task]' \
+'(-i --immediate)-s[Create the task in Stashed state. Useful to avoid immediate execution if the queue is empty]' \
+'(-i --immediate)--stashed[Create the task in Stashed state. Useful to avoid immediate execution if the queue is empty]' \
+'-p[Only return the task id instead of a text. This is useful when scripting and working with dependencies]' \
+'--print-task-id[Only return the task id instead of a text. This is useful when scripting and working with dependencies]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::command -- The command to be added:' \
+&& ret=0
+;;
+(remove)
+_arguments "${_arguments_options[@]}" \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- The task ids to be removed:' \
+&& ret=0
+;;
+(switch)
+_arguments "${_arguments_options[@]}" \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+':task-id-1 -- The first task id:' \
+':task-id-2 -- The second task id:' \
+&& ret=0
+;;
+(stash)
+_arguments "${_arguments_options[@]}" \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- Stash these specific tasks:' \
+&& ret=0
+;;
+(enqueue)
+_arguments "${_arguments_options[@]}" \
+'-d+[Delay enqueuing these tasks until <delay> elapses. See DELAY FORMAT below]' \
+'--delay=[Delay enqueuing these tasks until <delay> elapses. See DELAY FORMAT below]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- Enqueue these specific tasks:' \
+&& ret=0
+;;
+(start)
+_arguments "${_arguments_options[@]}" \
+'(-a --all)-g+[Resume a specific group and all paused tasks in it. The group will be set to running and its paused tasks will be resumed]' \
+'(-a --all)--group=[Resume a specific group and all paused tasks in it. The group will be set to running and its paused tasks will be resumed]' \
+'-a[Resume all groups! All groups will be set to running and paused tasks will be resumed]' \
+'--all[Resume all groups! All groups will be set to running and paused tasks will be resumed]' \
+'-c[Also resume direct child processes of your paused tasks. By default only the main process will get a SIGSTART]' \
+'--children[Also resume direct child processes of your paused tasks. By default only the main process will get a SIGSTART]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- Start these specific tasks. Paused tasks will resumed. Queued or Stashed tasks will be force-started:' \
+&& ret=0
+;;
+(restart)
+_arguments "${_arguments_options[@]}" \
+'(-s --stashed)-k[Immediately start the tasks]' \
+'(-s --stashed)--start-immediately[Immediately start the tasks]' \
+'-s[Set the restarted task to a "Stashed" state. Useful to avoid immediate execution]' \
+'--stashed[Set the restarted task to a "Stashed" state. Useful to avoid immediate execution]' \
+'-i[Restart the task by reusing the already existing tasks. This will overwrite any previous logs of the restarted tasks]' \
+'--in-place[Restart the task by reusing the already existing tasks. This will overwrite any previous logs of the restarted tasks]' \
+'-a[Restart all failed tasks]' \
+'--all-failed[Restart all failed tasks]' \
+'-e[Edit the tasks'\'' command before restarting]' \
+'--edit[Edit the tasks'\'' command before restarting]' \
+'-p[Edit the tasks'\'' path before restarting]' \
+'--edit-path[Edit the tasks'\'' path before restarting]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- Restart these specific tasks:' \
+&& ret=0
+;;
+(pause)
+_arguments "${_arguments_options[@]}" \
+'(-a --all)-g+[Pause a specific group]' \
+'(-a --all)--group=[Pause a specific group]' \
+'-a[Pause all groups!]' \
+'--all[Pause all groups!]' \
+'-w[Only pause the specified group and let already running tasks finish by themselves]' \
+'--wait[Only pause the specified group and let already running tasks finish by themselves]' \
+'-c[Also pause direct child processes of a task'\''s main process. By default only the main process will get a SIGSTOP. This is useful when calling bash scripts, which start other processes themselves. This operation is not recursive!]' \
+'--children[Also pause direct child processes of a task'\''s main process. By default only the main process will get a SIGSTOP. This is useful when calling bash scripts, which start other processes themselves. This operation is not recursive!]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- Pause these specific tasks. Does not affect the default group, groups or any other tasks:' \
+&& ret=0
+;;
+(kill)
+_arguments "${_arguments_options[@]}" \
+'(-a --all)-g+[Kill all running tasks in a group. This also pauses the group]' \
+'(-a --all)--group=[Kill all running tasks in a group. This also pauses the group]' \
+'-a[Kill all running tasks across ALL groups. This also pauses all groups]' \
+'--all[Kill all running tasks across ALL groups. This also pauses all groups]' \
+'-c[Send the SIGTERM signal to all children as well. Useful when working with shell scripts]' \
+'--children[Send the SIGTERM signal to all children as well. Useful when working with shell scripts]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- Kill these specific tasks:' \
+&& ret=0
+;;
+(send)
+_arguments "${_arguments_options[@]}" \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+':task-id -- The id of the task:' \
+':input -- The input that should be sent to the process:' \
+&& ret=0
+;;
+(edit)
+_arguments "${_arguments_options[@]}" \
+'-p[Edit the path of the task]' \
+'--path[Edit the path of the task]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+':task-id -- The id of the task:' \
+&& ret=0
+;;
+(group)
+_arguments "${_arguments_options[@]}" \
+'(-r --remove)-a+[Add a group by name]' \
+'(-r --remove)--add=[Add a group by name]' \
+'-r+[Remove a group by name. This will move all tasks in this group to the default group!]' \
+'--remove=[Remove a group by name. This will move all tasks in this group to the default group!]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+&& ret=0
+;;
+(status)
+_arguments "${_arguments_options[@]}" \
+'-g+[Only show tasks of a specific group]' \
+'--group=[Only show tasks of a specific group]' \
+'-j[Print the current state as json to stdout. This does not include stdout/stderr of tasks. Use `log -j` if you want everything]' \
+'--json[Print the current state as json to stdout. This does not include stdout/stderr of tasks. Use `log -j` if you want everything]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+&& ret=0
+;;
+(log)
+_arguments "${_arguments_options[@]}" \
+'(-f --full)-l+[Only print the last X lines of each task'\''s output. This is done by default if you'\''re looking at multiple tasks]' \
+'(-f --full)--lines=[Only print the last X lines of each task'\''s output. This is done by default if you'\''re looking at multiple tasks]' \
+'-j[Print the resulting tasks and output as json. Can be very large!]' \
+'--json[Print the resulting tasks and output as json. Can be very large!]' \
+'-f[Show the whole stdout and stderr output. This is the default if only a single task is being looked at]' \
+'--full[Show the whole stdout and stderr output. This is the default if only a single task is being looked at]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- View the task output of these specific tasks:' \
+&& ret=0
+;;
+(follow)
+_arguments "${_arguments_options[@]}" \
+'-e[Show stderr instead of stdout]' \
+'--err[Show stderr instead of stdout]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'::task-id -- The id of the task you want to watch. If no or multiple tasks are running, you have to specify the id. If only a single task is running, you can omit the id:' \
+&& ret=0
+;;
+(wait)
+_arguments "${_arguments_options[@]}" \
+'(-a --all)-g+[Wait for all tasks in a specific group]' \
+'(-a --all)--group=[Wait for all tasks in a specific group]' \
+'-a[Wait for all tasks across all groups and the default group]' \
+'--all[Wait for all tasks across all groups and the default group]' \
+'-q[Don'\''t show any log output while waiting]' \
+'--quiet[Don'\''t show any log output while waiting]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'*::task-ids -- This allows you to wait for specific tasks to finish:' \
+&& ret=0
+;;
+(clean)
+_arguments "${_arguments_options[@]}" \
+'-s[Only clean tasks that finished successfully]' \
+'--successful-only[Only clean tasks that finished successfully]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+&& ret=0
+;;
+(reset)
+_arguments "${_arguments_options[@]}" \
+'-c[Send the SIGTERM signal to all children as well. Useful when working with shell scripts]' \
+'--children[Send the SIGTERM signal to all children as well. Useful when working with shell scripts]' \
+'-f[Don'\''t ask for any confirmation]' \
+'--force[Don'\''t ask for any confirmation]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+&& ret=0
+;;
+(shutdown)
+_arguments "${_arguments_options[@]}" \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+&& ret=0
+;;
+(parallel)
+_arguments "${_arguments_options[@]}" \
+'-g+[Set the amount for a specific group]' \
+'--group=[Set the amount for a specific group]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+':parallel-tasks -- The amount of allowed parallel tasks:' \
+&& ret=0
+;;
+(completions)
+_arguments "${_arguments_options[@]}" \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+':shell -- The target shell:(bash elvish fish power-shell zsh)' \
+':output-directory -- The output directory to which the file should be written:' \
+&& ret=0
+;;
+(help)
+_arguments "${_arguments_options[@]}" \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+&& ret=0
+;;
+        esac
+    ;;
+esac
+}
+
+(( $+functions[_pueue_commands] )) ||
+_pueue_commands() {
+    local commands; commands=(
+        "add:Enqueue a task for execution" \
+"remove:Remove tasks from the list. Running or paused tasks need to be killed first" \
+"switch:Switches the queue position of two commands. Only works on queued and stashed commands" \
+"stash:Stashed tasks won't be automatically started. You have to enqueue them or start them by hand" \
+"enqueue:Enqueue stashed tasks. They'll be handled normally afterwards" \
+"start:Resume operation of specific tasks or groups of tasks.
+By default, this resumes the default group and all its tasks.
+Can also be used force-start specific tasks." \
+"restart:Restart task(s). Identical tasks will be created and by default enqueued. By default, a new task will be created" \
+"pause:Either pause running tasks or specific groups of tasks.
+By default, pauses the default group and all its tasks.
+A paused queue (group) won't start any new tasks." \
+"kill:Kill specific running tasks or whole task groups. Kills all tasks of the default group when no ids are provided" \
+"send:Send something to a task. Useful for sending confirmations such as 'y\n'" \
+"edit:Edit the command or path of a stashed or queued task.
+The command is edited by default." \
+"group:Use this to add or remove groups. By default, this will simply display all known groups" \
+"status:Display the current status of all tasks" \
+"log:Display the log output of finished tasks. Prints either all logs or only the logs of specified tasks" \
+"follow:Follow the output of a currently running task. This command works like tail -f" \
+"wait:Wait until tasks are finished. This can be quite useful for scripting. By default, this will wait for all tasks in the default group to finish. Note: This will also wait for all tasks that aren't somehow 'Done'. Includes: \[Paused, Stashed, Locked, Queued, ...\]" \
+"clean:Remove all finished tasks from the list (also clears logs)" \
+"reset:Kill all tasks, clean up afterwards and reset EVERYTHING!" \
+"shutdown:Remotely shut down the daemon. Should only be used if the daemon isn't started by a service manager" \
+"parallel:Set the amount of allowed parallel tasks. By default, adjusts the amount of the default group" \
+"completions:Generates shell completion files. This can be ignored during normal operations" \
+"help:Prints this message or the help of the given subcommand(s)" \
+    )
+    _describe -t commands 'pueue commands' commands "$@"
+}
+(( $+functions[_pueue__add_commands] )) ||
+_pueue__add_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue add commands' commands "$@"
+}
+(( $+functions[_pueue__clean_commands] )) ||
+_pueue__clean_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue clean commands' commands "$@"
+}
+(( $+functions[_pueue__completions_commands] )) ||
+_pueue__completions_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue completions commands' commands "$@"
+}
+(( $+functions[_pueue__edit_commands] )) ||
+_pueue__edit_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue edit commands' commands "$@"
+}
+(( $+functions[_pueue__enqueue_commands] )) ||
+_pueue__enqueue_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue enqueue commands' commands "$@"
+}
+(( $+functions[_pueue__follow_commands] )) ||
+_pueue__follow_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue follow commands' commands "$@"
+}
+(( $+functions[_pueue__group_commands] )) ||
+_pueue__group_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue group commands' commands "$@"
+}
+(( $+functions[_pueue__help_commands] )) ||
+_pueue__help_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue help commands' commands "$@"
+}
+(( $+functions[_pueue__kill_commands] )) ||
+_pueue__kill_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue kill commands' commands "$@"
+}
+(( $+functions[_pueue__log_commands] )) ||
+_pueue__log_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue log commands' commands "$@"
+}
+(( $+functions[_pueue__parallel_commands] )) ||
+_pueue__parallel_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue parallel commands' commands "$@"
+}
+(( $+functions[_pueue__pause_commands] )) ||
+_pueue__pause_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue pause commands' commands "$@"
+}
+(( $+functions[_pueue__remove_commands] )) ||
+_pueue__remove_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue remove commands' commands "$@"
+}
+(( $+functions[_pueue__reset_commands] )) ||
+_pueue__reset_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue reset commands' commands "$@"
+}
+(( $+functions[_pueue__restart_commands] )) ||
+_pueue__restart_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue restart commands' commands "$@"
+}
+(( $+functions[_pueue__send_commands] )) ||
+_pueue__send_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue send commands' commands "$@"
+}
+(( $+functions[_pueue__shutdown_commands] )) ||
+_pueue__shutdown_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue shutdown commands' commands "$@"
+}
+(( $+functions[_pueue__start_commands] )) ||
+_pueue__start_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue start commands' commands "$@"
+}
+(( $+functions[_pueue__stash_commands] )) ||
+_pueue__stash_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue stash commands' commands "$@"
+}
+(( $+functions[_pueue__status_commands] )) ||
+_pueue__status_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue status commands' commands "$@"
+}
+(( $+functions[_pueue__switch_commands] )) ||
+_pueue__switch_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue switch commands' commands "$@"
+}
+(( $+functions[_pueue__wait_commands] )) ||
+_pueue__wait_commands() {
+    local commands; commands=(
+        
+    )
+    _describe -t commands 'pueue wait commands' commands "$@"
+}
+
+_pueue "$@"
\ No newline at end of file
diff --git a/srcpkgs/pueue/files/pueue.bash b/srcpkgs/pueue/files/pueue.bash
new file mode 100644
index 00000000000..061bfde5a58
--- /dev/null
+++ b/srcpkgs/pueue/files/pueue.bash
@@ -0,0 +1,557 @@
+_pueue() {
+    local i cur prev opts cmds
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+    cmd=""
+    opts=""
+
+    for i in ${COMP_WORDS[@]}
+    do
+        case "${i}" in
+            pueue)
+                cmd="pueue"
+                ;;
+            
+            add)
+                cmd+="__add"
+                ;;
+            clean)
+                cmd+="__clean"
+                ;;
+            completions)
+                cmd+="__completions"
+                ;;
+            edit)
+                cmd+="__edit"
+                ;;
+            enqueue)
+                cmd+="__enqueue"
+                ;;
+            follow)
+                cmd+="__follow"
+                ;;
+            group)
+                cmd+="__group"
+                ;;
+            help)
+                cmd+="__help"
+                ;;
+            kill)
+                cmd+="__kill"
+                ;;
+            log)
+                cmd+="__log"
+                ;;
+            parallel)
+                cmd+="__parallel"
+                ;;
+            pause)
+                cmd+="__pause"
+                ;;
+            remove)
+                cmd+="__remove"
+                ;;
+            reset)
+                cmd+="__reset"
+                ;;
+            restart)
+                cmd+="__restart"
+                ;;
+            send)
+                cmd+="__send"
+                ;;
+            shutdown)
+                cmd+="__shutdown"
+                ;;
+            start)
+                cmd+="__start"
+                ;;
+            stash)
+                cmd+="__stash"
+                ;;
+            status)
+                cmd+="__status"
+                ;;
+            switch)
+                cmd+="__switch"
+                ;;
+            wait)
+                cmd+="__wait"
+                ;;
+            *)
+                ;;
+        esac
+    done
+
+    case "${cmd}" in
+        pueue)
+            opts=" -v -c -h -V  --verbose --config --help --version  add remove switch stash enqueue start restart pause kill send edit group status log follow wait clean reset shutdown parallel completions help"
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --config)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -c)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        
+        pueue__add)
+            opts=" -e -i -s -d -g -a -l -p -h -V  --escape --immediate --stashed --delay --group --after --label --print-task-id --help --version  <command>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --delay)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -d)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                --group)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -g)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                --after)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -a)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                --label)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -l)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__clean)
+            opts=" -s -h -V  --successful-only --help --version  "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__completions)
+            opts=" -h -V  --help --version  <shell> <output-directory> "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__edit)
+            opts=" -p -h -V  --path --help --version  <task-id> "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__enqueue)
+            opts=" -d -h -V  --delay --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --delay)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -d)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__follow)
+            opts=" -e -h -V  --err --help --version  <task-id> "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__group)
+            opts=" -a -r -h -V  --add --remove --help --version  "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --add)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -a)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                --remove)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -r)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__help)
+            opts=" -h -V  --help --version  "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__kill)
+            opts=" -g -a -c -h -V  --group --all --children --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --group)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -g)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__log)
+            opts=" -j -l -f -h -V  --json --lines --full --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --lines)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -l)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__parallel)
+            opts=" -g -h -V  --group --help --version  <parallel-tasks> "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --group)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -g)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__pause)
+            opts=" -g -a -w -c -h -V  --group --all --wait --children --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --group)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -g)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__remove)
+            opts=" -h -V  --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__reset)
+            opts=" -c -f -h -V  --children --force --help --version  "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__restart)
+            opts=" -k -s -i -a -e -p -h -V  --start-immediately --stashed --in-place --all-failed --edit --edit-path --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__send)
+            opts=" -h -V  --help --version  <task-id> <input> "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__shutdown)
+            opts=" -h -V  --help --version  "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__start)
+            opts=" -g -a -c -h -V  --group --all --children --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --group)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -g)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__stash)
+            opts=" -h -V  --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__status)
+            opts=" -j -g -h -V  --json --group --help --version  "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --group)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -g)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__switch)
+            opts=" -h -V  --help --version  <task-id-1> <task-id-2> "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+        pueue__wait)
+            opts=" -g -a -q -h -V  --group --all --quiet --help --version  <task-ids>... "
+            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
+                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+                return 0
+            fi
+            case "${prev}" in
+                
+                --group)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                    -g)
+                    COMPREPLY=($(compgen -f "${cur}"))
+                    return 0
+                    ;;
+                *)
+                    COMPREPLY=()
+                    ;;
+            esac
+            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+            return 0
+            ;;
+    esac
+}
+
+complete -F _pueue -o bashdefault -o default pueue
diff --git a/srcpkgs/pueue/files/pueue.fish b/srcpkgs/pueue/files/pueue.fish
new file mode 100644
index 00000000000..08219800734
--- /dev/null
+++ b/srcpkgs/pueue/files/pueue.fish
@@ -0,0 +1,135 @@
+complete -c pueue -n "__fish_use_subcommand" -s c -l config -d 'Path to a specific pueue config file to use. This ignores all other config files' -r
+complete -c pueue -n "__fish_use_subcommand" -s v -l verbose -d 'Verbose mode (-v, -vv, -vvv)'
+complete -c pueue -n "__fish_use_subcommand" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_use_subcommand" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_use_subcommand" -f -a "add" -d 'Enqueue a task for execution'
+complete -c pueue -n "__fish_use_subcommand" -f -a "remove" -d 'Remove tasks from the list. Running or paused tasks need to be killed first'
+complete -c pueue -n "__fish_use_subcommand" -f -a "switch" -d 'Switches the queue position of two commands. Only works on queued and stashed commands'
+complete -c pueue -n "__fish_use_subcommand" -f -a "stash" -d 'Stashed tasks won\'t be automatically started. You have to enqueue them or start them by hand'
+complete -c pueue -n "__fish_use_subcommand" -f -a "enqueue" -d 'Enqueue stashed tasks. They\'ll be handled normally afterwards'
+complete -c pueue -n "__fish_use_subcommand" -f -a "start" -d 'Resume operation of specific tasks or groups of tasks.
+By default, this resumes the default group and all its tasks.
+Can also be used force-start specific tasks.'
+complete -c pueue -n "__fish_use_subcommand" -f -a "restart" -d 'Restart task(s). Identical tasks will be created and by default enqueued. By default, a new task will be created'
+complete -c pueue -n "__fish_use_subcommand" -f -a "pause" -d 'Either pause running tasks or specific groups of tasks.
+By default, pauses the default group and all its tasks.
+A paused queue (group) won\'t start any new tasks.'
+complete -c pueue -n "__fish_use_subcommand" -f -a "kill" -d 'Kill specific running tasks or whole task groups. Kills all tasks of the default group when no ids are provided'
+complete -c pueue -n "__fish_use_subcommand" -f -a "send" -d 'Send something to a task. Useful for sending confirmations such as \'y\\n\''
+complete -c pueue -n "__fish_use_subcommand" -f -a "edit" -d 'Edit the command or path of a stashed or queued task.
+The command is edited by default.'
+complete -c pueue -n "__fish_use_subcommand" -f -a "group" -d 'Use this to add or remove groups. By default, this will simply display all known groups'
+complete -c pueue -n "__fish_use_subcommand" -f -a "status" -d 'Display the current status of all tasks'
+complete -c pueue -n "__fish_use_subcommand" -f -a "log" -d 'Display the log output of finished tasks. Prints either all logs or only the logs of specified tasks'
+complete -c pueue -n "__fish_use_subcommand" -f -a "follow" -d 'Follow the output of a currently running task. This command works like tail -f'
+complete -c pueue -n "__fish_use_subcommand" -f -a "wait" -d 'Wait until tasks are finished. This can be quite useful for scripting. By default, this will wait for all tasks in the default group to finish. Note: This will also wait for all tasks that aren\'t somehow \'Done\'. Includes: [Paused, Stashed, Locked, Queued, ...]'
+complete -c pueue -n "__fish_use_subcommand" -f -a "clean" -d 'Remove all finished tasks from the list (also clears logs)'
+complete -c pueue -n "__fish_use_subcommand" -f -a "reset" -d 'Kill all tasks, clean up afterwards and reset EVERYTHING!'
+complete -c pueue -n "__fish_use_subcommand" -f -a "shutdown" -d 'Remotely shut down the daemon. Should only be used if the daemon isn\'t started by a service manager'
+complete -c pueue -n "__fish_use_subcommand" -f -a "parallel" -d 'Set the amount of allowed parallel tasks. By default, adjusts the amount of the default group'
+complete -c pueue -n "__fish_use_subcommand" -f -a "completions" -d 'Generates shell completion files. This can be ignored during normal operations'
+complete -c pueue -n "__fish_use_subcommand" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
+complete -c pueue -n "__fish_seen_subcommand_from add" -d 'The command to be added' -r
+complete -c pueue -n "__fish_seen_subcommand_from add" -s d -l delay -d 'Prevents the task from being enqueued until <delay> elapses. See "enqueue" for accepted formats' -r
+complete -c pueue -n "__fish_seen_subcommand_from add" -s g -l group -d 'Assign the task to a group. Groups kind of act as separate queues. I.e. all groups run in parallel and you can specify the amount of parallel tasks for each group. If no group is specified, the default group will be used' -r
+complete -c pueue -n "__fish_seen_subcommand_from add" -s a -l after -d 'Start the task once all specified tasks have successfully finished. As soon as one of the dependencies fails, this task will fail as well' -r
+complete -c pueue -n "__fish_seen_subcommand_from add" -s l -l label -d 'Add some information for yourself. This string will be shown in the "status" table. There\'s no additional logic connected to it' -r
+complete -c pueue -n "__fish_seen_subcommand_from add" -s e -l escape -d 'Escape any special shell characters (" ", "&", "!", etc.). Beware: This implicitly disables basically all shell specific syntax ("&&", "&>")'
+complete -c pueue -n "__fish_seen_subcommand_from add" -s i -l immediate -d 'Immediately start the task'
+complete -c pueue -n "__fish_seen_subcommand_from add" -s s -l stashed -d 'Create the task in Stashed state. Useful to avoid immediate execution if the queue is empty'
+complete -c pueue -n "__fish_seen_subcommand_from add" -s p -l print-task-id -d 'Only return the task id instead of a text. This is useful when scripting and working with dependencies'
+complete -c pueue -n "__fish_seen_subcommand_from add" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from add" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from remove" -d 'The task ids to be removed' -r
+complete -c pueue -n "__fish_seen_subcommand_from remove" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from remove" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from switch" -d 'The first task id' -r
+complete -c pueue -n "__fish_seen_subcommand_from switch" -d 'The second task id' -r
+complete -c pueue -n "__fish_seen_subcommand_from switch" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from switch" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from stash" -d 'Stash these specific tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from stash" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from stash" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from enqueue" -d 'Enqueue these specific tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from enqueue" -s d -l delay -d 'Delay enqueuing these tasks until <delay> elapses. See DELAY FORMAT below' -r
+complete -c pueue -n "__fish_seen_subcommand_from enqueue" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from enqueue" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from start" -d 'Start these specific tasks. Paused tasks will resumed. Queued or Stashed tasks will be force-started' -r
+complete -c pueue -n "__fish_seen_subcommand_from start" -s g -l group -d 'Resume a specific group and all paused tasks in it. The group will be set to running and its paused tasks will be resumed' -r
+complete -c pueue -n "__fish_seen_subcommand_from start" -s a -l all -d 'Resume all groups! All groups will be set to running and paused tasks will be resumed'
+complete -c pueue -n "__fish_seen_subcommand_from start" -s c -l children -d 'Also resume direct child processes of your paused tasks. By default only the main process will get a SIGSTART'
+complete -c pueue -n "__fish_seen_subcommand_from start" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from start" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -d 'Restart these specific tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s k -l start-immediately -d 'Immediately start the tasks'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s s -l stashed -d 'Set the restarted task to a "Stashed" state. Useful to avoid immediate execution'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s i -l in-place -d 'Restart the task by reusing the already existing tasks. This will overwrite any previous logs of the restarted tasks'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s a -l all-failed -d 'Restart all failed tasks'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s e -l edit -d 'Edit the tasks\' command before restarting'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s p -l edit-path -d 'Edit the tasks\' path before restarting'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from restart" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from pause" -d 'Pause these specific tasks. Does not affect the default group, groups or any other tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from pause" -s g -l group -d 'Pause a specific group' -r
+complete -c pueue -n "__fish_seen_subcommand_from pause" -s a -l all -d 'Pause all groups!'
+complete -c pueue -n "__fish_seen_subcommand_from pause" -s w -l wait -d 'Only pause the specified group and let already running tasks finish by themselves'
+complete -c pueue -n "__fish_seen_subcommand_from pause" -s c -l children -d 'Also pause direct child processes of a task\'s main process. By default only the main process will get a SIGSTOP. This is useful when calling bash scripts, which start other processes themselves. This operation is not recursive!'
+complete -c pueue -n "__fish_seen_subcommand_from pause" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from pause" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from kill" -d 'Kill these specific tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from kill" -s g -l group -d 'Kill all running tasks in a group. This also pauses the group' -r
+complete -c pueue -n "__fish_seen_subcommand_from kill" -s a -l all -d 'Kill all running tasks across ALL groups. This also pauses all groups'
+complete -c pueue -n "__fish_seen_subcommand_from kill" -s c -l children -d 'Send the SIGTERM signal to all children as well. Useful when working with shell scripts'
+complete -c pueue -n "__fish_seen_subcommand_from kill" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from kill" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from send" -d 'The id of the task' -r
+complete -c pueue -n "__fish_seen_subcommand_from send" -d 'The input that should be sent to the process' -r
+complete -c pueue -n "__fish_seen_subcommand_from send" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from send" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from edit" -d 'The id of the task' -r
+complete -c pueue -n "__fish_seen_subcommand_from edit" -s p -l path -d 'Edit the path of the task'
+complete -c pueue -n "__fish_seen_subcommand_from edit" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from edit" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from group" -s a -l add -d 'Add a group by name' -r
+complete -c pueue -n "__fish_seen_subcommand_from group" -s r -l remove -d 'Remove a group by name. This will move all tasks in this group to the default group!' -r
+complete -c pueue -n "__fish_seen_subcommand_from group" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from group" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from status" -s g -l group -d 'Only show tasks of a specific group' -r
+complete -c pueue -n "__fish_seen_subcommand_from status" -s j -l json -d 'Print the current state as json to stdout. This does not include stdout/stderr of tasks. Use `log -j` if you want everything'
+complete -c pueue -n "__fish_seen_subcommand_from status" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from status" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from log" -d 'View the task output of these specific tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from log" -s l -l lines -d 'Only print the last X lines of each task\'s output. This is done by default if you\'re looking at multiple tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from log" -s j -l json -d 'Print the resulting tasks and output as json. Can be very large!'
+complete -c pueue -n "__fish_seen_subcommand_from log" -s f -l full -d 'Show the whole stdout and stderr output. This is the default if only a single task is being looked at'
+complete -c pueue -n "__fish_seen_subcommand_from log" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from log" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from follow" -d 'The id of the task you want to watch. If no or multiple tasks are running, you have to specify the id. If only a single task is running, you can omit the id' -r
+complete -c pueue -n "__fish_seen_subcommand_from follow" -s e -l err -d 'Show stderr instead of stdout'
+complete -c pueue -n "__fish_seen_subcommand_from follow" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from follow" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from wait" -d 'This allows you to wait for specific tasks to finish' -r
+complete -c pueue -n "__fish_seen_subcommand_from wait" -s g -l group -d 'Wait for all tasks in a specific group' -r
+complete -c pueue -n "__fish_seen_subcommand_from wait" -s a -l all -d 'Wait for all tasks across all groups and the default group'
+complete -c pueue -n "__fish_seen_subcommand_from wait" -s q -l quiet -d 'Don\'t show any log output while waiting'
+complete -c pueue -n "__fish_seen_subcommand_from wait" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from wait" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from clean" -s s -l successful-only -d 'Only clean tasks that finished successfully'
+complete -c pueue -n "__fish_seen_subcommand_from clean" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from clean" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from reset" -s c -l children -d 'Send the SIGTERM signal to all children as well. Useful when working with shell scripts'
+complete -c pueue -n "__fish_seen_subcommand_from reset" -s f -l force -d 'Don\'t ask for any confirmation'
+complete -c pueue -n "__fish_seen_subcommand_from reset" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from reset" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from shutdown" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from shutdown" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from parallel" -d 'The amount of allowed parallel tasks' -r
+complete -c pueue -n "__fish_seen_subcommand_from parallel" -s g -l group -d 'Set the amount for a specific group' -r
+complete -c pueue -n "__fish_seen_subcommand_from parallel" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from parallel" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from completions" -d 'The target shell' -r -f -a "bash elvish fish power-shell zsh"
+complete -c pueue -n "__fish_seen_subcommand_from completions" -d 'The output directory to which the file should be written' -r
+complete -c pueue -n "__fish_seen_subcommand_from completions" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from completions" -s V -l version -d 'Prints version information'
+complete -c pueue -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
+complete -c pueue -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
diff --git a/srcpkgs/pueue/template b/srcpkgs/pueue/template
index 9323800e377..a7f078424fc 100644
--- a/srcpkgs/pueue/template
+++ b/srcpkgs/pueue/template
@@ -1,6 +1,6 @@
 # Template file for 'pueue'
 pkgname=pueue
-version=0.10.2
+version=0.12.0
 revision=1
 build_style=cargo
 short_desc="Command-line tool for managing long-running tasks"
@@ -8,7 +8,7 @@ maintainer="crater2150 <void@qwertyuiop.de>"
 license="MIT"
 homepage="https://github.com/Nukesor/pueue"
 distfiles="https://github.com/Nukesor/pueue/archive/v${version}.tar.gz"
-checksum=dbd333079df9249609f6a01d7c96175ec9d74f9d621688b95ec755134b7fa1f5
+checksum=9c3930380120bf8479caa55236fb9fdbbad5bfe3d41c0729a667c777cbc856e2
 
 case "$XBPS_TARGET_MACHINE" in
 	x86_64*|i686*|arm*|aarch64*) ;;
@@ -17,4 +17,8 @@ esac
 
 post_install() {
 	vlicense LICENSE
+
+	vinstall ${FILESDIR}/_pueue     644 usr/share/zsh/site-functions
+	vinstall ${FILESDIR}/pueue.bash 644 usr/share/bash-completion/completions
+	vinstall ${FILESDIR}/pueue.fish 644 usr/share/fish/vendor_completions.d
 }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pueue: update to 0.12.0
  2021-03-08 14:04 [PR PATCH] pueue: update to 0.12.0 crater2150
@ 2021-03-08 14:10 ` ericonr
  2021-03-09 10:38 ` [PR PATCH] [Updated] " crater2150
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: ericonr @ 2021-03-08 14:10 UTC (permalink / raw)
  To: ml

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

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/29316#issuecomment-792780940

Comment:
Grep for `vtargetrun` in `srcpkgs/`, it's used mainly for completions :)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] pueue: update to 0.12.0
  2021-03-08 14:04 [PR PATCH] pueue: update to 0.12.0 crater2150
  2021-03-08 14:10 ` ericonr
@ 2021-03-09 10:38 ` crater2150
  2021-03-09 10:39 ` crater2150
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: crater2150 @ 2021-03-09 10:38 UTC (permalink / raw)
  To: ml

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

There is an updated pull request by crater2150 against master on the void-packages repository

https://github.com/crater2150/void-packages pueue
https://github.com/void-linux/void-packages/pull/29316

pueue: update to 0.12.0
I bundled the completion files, which are generated by running `pueue completions`. Please let me know if there's a good way to run this step from the template (`pueue` is a binary, so I didn't know how to call it without breaking cross-building).

#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [ ] I generally don't use the affected packages but briefly tested this PR

#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [x] I built this PR locally for my native architecture, (x86_64)
- [x] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [x] aarch64-musl
  - [x] armv7l
  - [x] armv6l-musl

A patch file from https://github.com/void-linux/void-packages/pull/29316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pueue-29316.patch --]
[-- Type: text/x-diff, Size: 1379 bytes --]

From 7a72a41458717fbfd882d91b428b0562aceef070 Mon Sep 17 00:00:00 2001
From: Alexander Gehrke <github@qwertyuiop.de>
Date: Mon, 8 Mar 2021 14:30:09 +0100
Subject: [PATCH] pueue: update to 0.12.0

---
 srcpkgs/pueue/template | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pueue/template b/srcpkgs/pueue/template
index 9323800e377..32c8a62a853 100644
--- a/srcpkgs/pueue/template
+++ b/srcpkgs/pueue/template
@@ -1,20 +1,31 @@
 # Template file for 'pueue'
 pkgname=pueue
-version=0.10.2
+version=0.12.0
 revision=1
 build_style=cargo
+build_helper="qemu"
 short_desc="Command-line tool for managing long-running tasks"
 maintainer="crater2150 <void@qwertyuiop.de>"
 license="MIT"
 homepage="https://github.com/Nukesor/pueue"
 distfiles="https://github.com/Nukesor/pueue/archive/v${version}.tar.gz"
-checksum=dbd333079df9249609f6a01d7c96175ec9d74f9d621688b95ec755134b7fa1f5
+checksum=9c3930380120bf8479caa55236fb9fdbbad5bfe3d41c0729a667c777cbc856e2
 
 case "$XBPS_TARGET_MACHINE" in
 	x86_64*|i686*|arm*|aarch64*) ;;
 	*) broken="ftbfs in ring" ;;
 esac
 
+post_build() {
+	for shell in bash fish zsh; do
+		vtargetrun target/$XBPS_RUST_TARGET/release/pueue completions $shell .
+	done
+}
+
 post_install() {
 	vlicense LICENSE
+
+	vcompletion _pueue zsh pueue
+	vcompletion pueue.bash bash pueue
+	vcompletion pueue.fish fish pueue
 }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: pueue: update to 0.12.0
  2021-03-08 14:04 [PR PATCH] pueue: update to 0.12.0 crater2150
  2021-03-08 14:10 ` ericonr
  2021-03-09 10:38 ` [PR PATCH] [Updated] " crater2150
@ 2021-03-09 10:39 ` crater2150
  2021-03-10 12:06 ` [PR PATCH] [Updated] " crater2150
  2021-03-11 20:04 ` [PR PATCH] [Merged]: " ericonr
  4 siblings, 0 replies; 6+ messages in thread
From: crater2150 @ 2021-03-09 10:39 UTC (permalink / raw)
  To: ml

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

New comment by crater2150 on void-packages repository

https://github.com/void-linux/void-packages/pull/29316#issuecomment-793694737

Comment:
That works great, thanks! Much better if one doesn't need to remember refreshing the completion files on updates

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] pueue: update to 0.12.0
  2021-03-08 14:04 [PR PATCH] pueue: update to 0.12.0 crater2150
                   ` (2 preceding siblings ...)
  2021-03-09 10:39 ` crater2150
@ 2021-03-10 12:06 ` crater2150
  2021-03-11 20:04 ` [PR PATCH] [Merged]: " ericonr
  4 siblings, 0 replies; 6+ messages in thread
From: crater2150 @ 2021-03-10 12:06 UTC (permalink / raw)
  To: ml

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

There is an updated pull request by crater2150 against master on the void-packages repository

https://github.com/crater2150/void-packages pueue
https://github.com/void-linux/void-packages/pull/29316

pueue: update to 0.12.0
I bundled the completion files, which are generated by running `pueue completions`. Please let me know if there's a good way to run this step from the template (`pueue` is a binary, so I didn't know how to call it without breaking cross-building).

#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [ ] I generally don't use the affected packages but briefly tested this PR

#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [x] I built this PR locally for my native architecture, (x86_64)
- [x] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [x] aarch64-musl
  - [x] armv7l
  - [x] armv6l-musl

A patch file from https://github.com/void-linux/void-packages/pull/29316.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pueue-29316.patch --]
[-- Type: text/x-diff, Size: 1376 bytes --]

From 6a434c58aad62adc9415a98af0751f1a0ba160b9 Mon Sep 17 00:00:00 2001
From: Alexander Gehrke <github@qwertyuiop.de>
Date: Mon, 8 Mar 2021 14:30:09 +0100
Subject: [PATCH] pueue: update to 0.12.0

---
 srcpkgs/pueue/template | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pueue/template b/srcpkgs/pueue/template
index 9323800e377..7ddbff9e72c 100644
--- a/srcpkgs/pueue/template
+++ b/srcpkgs/pueue/template
@@ -1,20 +1,31 @@
 # Template file for 'pueue'
 pkgname=pueue
-version=0.10.2
+version=0.12.0
 revision=1
 build_style=cargo
+build_helper="qemu"
 short_desc="Command-line tool for managing long-running tasks"
 maintainer="crater2150 <void@qwertyuiop.de>"
 license="MIT"
 homepage="https://github.com/Nukesor/pueue"
 distfiles="https://github.com/Nukesor/pueue/archive/v${version}.tar.gz"
-checksum=dbd333079df9249609f6a01d7c96175ec9d74f9d621688b95ec755134b7fa1f5
+checksum=9c3930380120bf8479caa55236fb9fdbbad5bfe3d41c0729a667c777cbc856e2
 
 case "$XBPS_TARGET_MACHINE" in
 	x86_64*|i686*|arm*|aarch64*) ;;
 	*) broken="ftbfs in ring" ;;
 esac
 
+post_build() {
+	for shell in bash fish zsh; do
+		vtargetrun target/${RUST_TARGET}/release/pueue completions $shell .
+	done
+}
+
 post_install() {
 	vlicense LICENSE
+
+	vcompletion _pueue zsh pueue
+	vcompletion pueue.bash bash pueue
+	vcompletion pueue.fish fish pueue
 }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Merged]: pueue: update to 0.12.0
  2021-03-08 14:04 [PR PATCH] pueue: update to 0.12.0 crater2150
                   ` (3 preceding siblings ...)
  2021-03-10 12:06 ` [PR PATCH] [Updated] " crater2150
@ 2021-03-11 20:04 ` ericonr
  4 siblings, 0 replies; 6+ messages in thread
From: ericonr @ 2021-03-11 20:04 UTC (permalink / raw)
  To: ml

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

There's a merged pull request on the void-packages repository

pueue: update to 0.12.0
https://github.com/void-linux/void-packages/pull/29316

Description:
I bundled the completion files, which are generated by running `pueue completions`. Please let me know if there's a good way to run this step from the template (`pueue` is a binary, so I didn't know how to call it without breaking cross-building).

#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [ ] I generally don't use the affected packages but briefly tested this PR

#### Does it build and run successfully? 
(Please choose at least one native build and, if supported, at least one cross build. More are better.)
- [x] I built this PR locally for my native architecture, (x86_64)
- [x] I built this PR locally for these architectures (if supported. mark crossbuilds):
  - [x] aarch64-musl
  - [x] armv7l
  - [x] armv6l-musl

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-03-11 20:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-08 14:04 [PR PATCH] pueue: update to 0.12.0 crater2150
2021-03-08 14:10 ` ericonr
2021-03-09 10:38 ` [PR PATCH] [Updated] " crater2150
2021-03-09 10:39 ` crater2150
2021-03-10 12:06 ` [PR PATCH] [Updated] " crater2150
2021-03-11 20:04 ` [PR PATCH] [Merged]: " ericonr

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 NNTP newsgroup(s).