summaryrefslogtreecommitdiffstats
path: root/scripts/ingenish
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/ingenish')
-rwxr-xr-xscripts/ingenish121
1 files changed, 0 insertions, 121 deletions
diff --git a/scripts/ingenish b/scripts/ingenish
deleted file mode 100755
index 97640645..00000000
--- a/scripts/ingenish
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/env python
-# Ingen Interactive Shell
-# Copyright 2011-2015 David Robillard <http://drobilla.net>
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-import ingen
-import os.path
-import re
-import shlex
-import sys
-import time
-try:
- import readline
-except:
- pass
-
-# Python 2 compatibility
-try:
- input = raw_input
-except NameError:
- pass
-
-def print_usage():
- print('''Usage: ingenish [OPTION]... [COMMAND [ARGUMENT]...]
-
-A command line interface to an Ingen server. A command can be given directly
-on the command line, or when run with no arguments an interactive shell is
-launched.
-
-Options:
- -s ADDRESS The address of the Ingen server. Default is the local server
- at unix:///tmp/ingen.sock but remote servers can be used with
- an address like tcp:///my-ingen-server-host:16180
-
-Commands:
- put SUBJECT BODY
- set SUBJECT KEY VALUE
- connect TAIL HEAD
- disconnect TAIL HEAD
- patch SUBJECT REMOVE ADD
- delete SUBJECT
- help
- exit
-
-Subjects are specified by URI, relative to the engine. The top level audio
-graph has the path /main, so for example, a port on a block might have the
-(relative) URI /main/osc/freq.
-
-Bodies are specified in fragments of Turtle, just as written in Ingen graph files.
-
-Example:
- put /main/left_in 'a lv2:InputPort ; a lv2:AudioPort'
- put /main/left_out 'a lv2:OutputPort ; a lv2:AudioPort'
- put /main/tone 'a ingen:Block ; lv2:prototype <http://drobilla.net/plugins/mda/Shepard>'
- put /main/combo 'a ingen:Block ; lv2:prototype <http://drobilla.net/plugins/mda/Combo>'
- connect /main/left_in /main/tone/left_in
- connect /main/tone/left_out /main/combo/left_in
- connect /main/combo/left_out /main/left_out
- set /main/tone/output ingen:value 0.7
-''')
-
-def run(cmd):
- if cmd[0] == 'help':
- print_usage()
- elif cmd[0] == 'exit':
- sys.exit(0)
- elif cmd[0] == 'get' and len(cmd) == 2:
- print(ingen.get(cmd[1]).serialize(format='n3'))
- elif cmd[0] == 'put' and len(cmd) == 3:
- return ingen.put(cmd[1], cmd[2])
- elif cmd[0] == 'patch' and len(cmd) == 4:
- return ingen.patch(cmd[1], cmd[2], cmd[3])
- elif cmd[0] == 'set' and len(cmd) == 4:
- return ingen.set(cmd[1], cmd[2], cmd[3])
- elif cmd[0] == 'connect' and len(cmd) == 3:
- return ingen.connect(cmd[1], cmd[2])
- elif cmd[0] == 'disconnect' and len(cmd) == 3:
- return ingen.disconnect(cmd[1], cmd[2])
- elif cmd[0] == 'delete' and len(cmd) == 2:
- return ingen.delete(cmd[1])
- return False
-
-a = 1
-server = 'unix:///tmp/ingen.sock'
-if len(sys.argv) > 1:
- if sys.argv[a] == '-s':
- server = sys.argv[a + 1]
- a = a + 2
- elif sys.argv[a][0] == '-':
- print_usage()
- sys.exit(1)
-
-ingen = ingen.Remote(server)
-
-if len(sys.argv) - a == 0:
- print('Ingen server at %s' % server)
- while True:
- try:
- run(shlex.split(input('> ')))
- except (EOFError, KeyboardInterrupt, SystemExit):
- break
- except:
- print('error: %s' % sys.exc_info()[1])
-else:
- try:
- update = run(sys.argv[a:])
- if update:
- print(update.serialize(format='n3'))
- except:
- print('error: %s' % sys.exc_info()[1])