# Qcmd `qcmd` is intended to be a simple command line client for QLab utilizing QLab 3's new OSC interface. `qcmd` should be useable from any machine on the same local network as the QLab workspace you intend to work with. This project is OS X only and has been tested against Ruby 1.8.7-p358 (OS X 10.8 default), Ruby 1.8.7 REE 2012.02, and Ruby 1.9.3-p327. **This project should be considered experimental. DO NOT RUN SHOWS WITH IT.** ## Installation Before installing `qcmd`, you'll have to install the [Command Line Tools for Xcode](https://developer.apple.com/downloads). They're free, but you'll need an Apple ID to download them. Once you've done that, you can install `qcmd` to your machine by running the following command: $ sudo gem install qcmd That should do ya. ## Starting the `qcmd` console. Run the following command in a terminal window: $ qcmd From there, you can connect to a machine, connect to a workspace, and then send commands to cues and the workspace. `qcmd` supports tab completion for commands in case you get stuck or are wondering what you can do from the console. Type the beginning of a command and hit tab to auto-complete the command, or hit it twice to see all possible completions. Run `qcmd` with the -v option to get full debugging output. Use the main project repository (https://github.com/Figure53/qcmd) to report any issues. An example session might look like this: $ qcmd .:::: .:: .:: .:: .:: .:: .:: .:: .::.:: .:: .:: .:: .::.:: .:: .:: .:: .:: .:: .::.:: .:: .:: .:: .:: .:: .: .:: .:: .:: .:: .:: .:: .:: :: .:::::::: .:: .:::.:: .:: .: qcmd 0.1.9 (c) 2012 Figure 53, Baltimore, MD. Found 2 QLab machines 1. my-mac-laptop 2. f53imac Type `connect "MACHINE NAME"` or `connect IP_ADDRESS` to connect to a machine 13:40 > connect my-mac-laptop Connecting to machine: my-mac-laptop Connected to machine "my-mac-laptop" Connecting to workspace: Untitled Workspace 1 Connected to "Untitled Workspace 1" Loaded 3 cues 13:41 [my-mac-laptop] [Untitled Workspace 1] > cues ------------------------------- Cues: Main Cue List ------------------------------- Number Id Name Type 1 1 YOP Audio 2 2 Not Armory Audio 3 3 BUTT Audio 13:41 [my-mac-laptop] [Untitled Workspace 1] > cue 3 name "Fix this name" ok 13:41 [my-mac-laptop] [Untitled Workspace 1] [3 Fix this name] > start ok 13:41 [my-mac-laptop] [Untitled Workspace 1] [3 Fix this name] > .. 13:41 [my-mac-laptop] [Untitled Workspace 1] > hardStop ok 13:41 [my-mac-laptop] [Untitled Workspace 1] > copy-name 3 2 ok 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name] > cues ------------------------------- Cues: Main Cue List ------------------------------- Number Id Name Type 1 1 YOP Audio 2 2 Fix this name Audio 3 3 Fix this name Audio 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name] > alias smiley (cue $1 name ":) :) :) :) :) :)") Added alias for "smiley": (cue $1 name ":) :) :) :) :) :)") 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name] > smiley 2 ok 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 :) :) :) :) :) :)] > cues ------------------------------- Cues: Main Cue List ------------------------------- Number Id Name Type 1 1 YOP Audio 2 2 :) :) :) :) :) :) Audio 3 3 Fix this name Audio 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 :) :) :) :) :) :)] > exit exiting... If you already know the machine you want to connect to, you can use the `-m` option to connect immediately from the command line: $ qcmd -m "my mac laptop" Connecting to workspace: Untitled Workspace 1 Connected to "Untitled Workspace 1" Loaded 1 cue 10:15 [my mac laptop] [Untitled Workspace 1] > If there's only one workspace available, `qcmd` will connect to the given machine and then try to automatically connect to that workspace. If there's more than one workspace, you can list it on the command line as well to connect immediately: $ qcmd -m "my mac laptop" -w "very special cues.cues" 10:36 [my mac laptop] [very special cues.cues] > Finally, if all you want `qcmd` to do is run a single command and exit, you can use the `-c` option from the command line along with the `-m` and `-w` to make sure `qcmd` knows where to send the message: $ qcmd -m "my mac laptop" -w "very special cues.cues" -c "cue 1 start" ok ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request