From 0719df9d21334ad1415b5e9712bb343b884233ea Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 23 Apr 2020 16:55:15 -0600 Subject: [PATCH] two small scripts to facilitate generating an annotated list of Lua scripts --- tools/luals | 26 ++++++++++++++++++++++++++ tools/mkluacatalog | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100755 tools/luals create mode 100755 tools/mkluacatalog diff --git a/tools/luals b/tools/luals new file mode 100755 index 0000000000..e55465733a --- /dev/null +++ b/tools/luals @@ -0,0 +1,26 @@ +#!/usr/bin/lua5.3 + +function scripts (path) + local out = io.popen ( + string.format ("find '%s' -maxdepth 1 -type f -iname \"[^_]*.lua\" | grep -ve s_", path) + ) + return function() + for file in out:lines() do + return file + end + return nil + end +end + +function ardour (v) + local newline = string.find (v['description'], '\n') + if newline then + io.write (string.format ("T:%s:N:%s:D:%s\n", v['type'], v['name'], string.sub (v['description'], 0, newline-1))) + else + io.write (string.format ("T:%s:N:%s:D:%s\n", v['type'], v['name'], v['description'])) + end +end + +for script in scripts ("share/scripts/") do + loadfile (script)() +end diff --git a/tools/mkluacatalog b/tools/mkluacatalog new file mode 100755 index 0000000000..fb702d1ab2 --- /dev/null +++ b/tools/mkluacatalog @@ -0,0 +1,41 @@ +#!/bin/sh + +tooldir=`dirname $0` + +$tooldir/luals | awk ' +BEGIN { + type_name_map["dsp"] = "DSP"; + type_name_map["EditorAction"] = "Editor Actions"; + type_name_map["EditorHook"] = "Editor Hooks"; + type_name_map["SessionInit"] = "Session Initialization"; + type_name_map["session"] = "Session"; +} +/T:/ { + split ($0, a, ":"); + + if (a[2] in type_name_map) { + type_name = type_name_map[a[2]]; + } else { + type_name = a[2]; + } + + types[scripts] = type_name; + type_names[type_name] = type_name; + names[scripts] = a[4]; + descriptions[scripts] = a[6]; + scripts++; +} +END { + tnc = asort (type_names); + + for (tn = 1; tn <= tnc; ++tn) { + printf ("

%s

\n
\n", type_names[tn]); + for (s = 1; s <= scripts; ++s) { + if (types[s] == type_names[tn]) { + printf ("
%s
%s
\n", names[s], descriptions[s]); + } + } + printf ("
\n"); + } +} +'