summaryrefslogtreecommitdiff
path: root/Run/Que/quescripts.md
blob: 0414d900ac3550bbf0cf20a265e5607abdf71b92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
% Quescripts

## Remote desktop notifications

Lets say we are running a job that takes a long time, maybe we are
compiling or running a large test suite. Instead of watching the
terminal until it completes, or flipping back to check on it every so
often, we can create a listener that displays a popup notification when
the job finishes.

In one terminal run the listener:

    que example/notify --then "notify-send '\que' '\msg'"

In some other terminal run the job that takes forever:

    runtests ; echo "tests are done" | que example/notify -

When terminal 2 succeeds, terminal 1 will print "tests are done", then
call the `notify-send` command, which displays a notification toast in
Linux with title "`example/notify`" and content "`tests are done`".

Que paths are multi-producer and multi-consumer, so you can add as many
terminals as you want.

On macOS you could use:

    osascript -e 'display notification "\msg" with title "\que"'

in place of notify-send.

## Ephemeral, serverless chat rooms

coming soon

## Collaborative jukebox

It's surprisingly easy to make a collaborative jukebox.

First start up a music player:

    que --poll pub/music --then "playsong '\msg'"

where `playsong` is a script that plays a file from data streaming to
`stdin`. For example [vlc](https://www.videolan.org/vlc/) does this when
you run it like `vlc -`.

Then, anyone can submit songs with:

    que pub/music song.mp3