This file is indexed.

/usr/bin/zynspect is in zynjacku 6-4build1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#! /usr/bin/python
import os
import sys
from distutils import sysconfig

old_path = sys.path

inplace_libs = os.path.join(os.path.dirname(sys.argv[0]), ".libs")
if os.access(inplace_libs, os.R_OK):
    sys.path.append(inplace_libs)

try:
    from zynworld import lv2
except Exception, e:
    print "Failed to import zynjacku internal python modules"
    print repr(e)
    print "These directories were searched"
    for path in sys.path:
        print "    " + path
    sys.exit(1)

sys.path = old_path

def show_plugin_info(plugin):
    print "Plugin: %s" % plugin.name
    print "URI: %s" % plugin.uri
    if plugin.microname != None:
        print "Tiny name: %s" % plugin.microname
    if plugin.maintainers:
        print "Maintainers: %s" % plugin.maintainers
    print "License: %s" % plugin.license
    print "Classes: %s" % plugin.classes
    print "Required features: %s" % list(plugin.requiredFeatures)
    print "Optional features: %s" % list(plugin.optionalFeatures)
    print "Binary: " + plugin.binary

    print
    if plugin.presets:
        print "Presets:"
        for preset in plugin.presets:
            print "    URI:  " + preset
            info = db.get_preset_info(plugin.uri, preset)
            #print "    " + info.name
            print "    Name: " + info.name
            print "    Port values:"
            for port in info.ports:
                print "        %s: %s" % (port.symbol, port.value)
            print
    else:
        print "No presets"
    print

    print "Ports:"
    types = ["Audio", "Control", "Event", "Input", "Output", "String", "LarslMidi"]
    for port in plugin.ports:
        extra = []
        for type in types:
            if port.__dict__["is" + type]:
                extra.append(type)
        for sp in ["defaultValue", "minimum", "maximum", "microname"]:
            if port.__dict__[sp] != None:
                extra.append("%s=%s" % (sp, repr(port.__dict__[sp])))
        if len(port.events):
            s = list()
            for evt in port.events:
                if evt in lv2.event_type_names:
                    s.append(lv2.event_type_names[evt])
                else:
                    s.append(evt)
            extra.append("events=%s" % ",".join(s))
        if len(port.properties):
            s = list()
            for prop in port.properties:
                if prop in lv2.port_property_names:
                    s.append(lv2.port_property_names[prop])
                else:
                    s.append(prop)
            extra.append("properties=%s" % ",".join(s))
        if len(port.contexts):
            s = list()
            for context in port.contexts:
                if context in lv2.context_names:
                    s.append(lv2.context_names[context])
                else:
                    s.append(context)
            extra.append("contexts=%s" % ",".join(s))
        print "%4s %-20s %-40s %s" % (port.index, port.symbol, port.name, ", ".join(extra))
        splist = port.scalePoints
        splist.sort(lambda x, y: cmp(x[1], y[1]))
        if len(splist):
            for sp in splist:
                print "       Scale point %s: %s" % (sp[1], sp[0])
        #print port
    print

    if plugin.ui:
        print "UI bundles:"
        for ui_uri in plugin.ui:
            print "    " + ui_uri
            ui = db.get_ui_info(plugin.uri, ui_uri)
            print "        Type: " + ui.type
            print "        Binary: " + ui.binary
            print "        Required features: " + repr(ui.requiredFeatures)
            print "        Optional features: " + repr(ui.optionalFeatures)
        print
    print

    print "Sources:"
    for source in plugin.sources:
        print "    " + source
    print

def list_plugins(verbose):
    plugins = db.getPluginList()

    for uri in plugins:
        if verbose:
            plugin = db.getPluginInfo(uri)
            if plugin == None:
                continue
            show_plugin_info(plugin)
        else:
            print uri

db = lv2.LV2DB()

if len(sys.argv) >= 2:
    if sys.argv[1] == "dump":
        list_plugins(True)
    else:
        uri = sys.argv[1]

        plugin = db.getPluginInfo(uri)

        if plugin == None:
            print 'Plugin URI "%s" is unknown' % uri
            sys.exit(1)

        show_plugin_info(plugin)
else:
    list_plugins(False)