#!/usr/bin/env luajit local _ = require '_' I'Starting from the top.' local Help = [[ This is part of the blah blah blah... ]] local options = { start = {help = 'Command to start the scanning process, for Sys V init.',}, restart = {start}, ['force-reload'] = {start}, status = {help = 'Command to check the status of the scanning process, for Sys V init.',}, stop = {help = 'Command to stop the scanning process, for Sys V init.',}, JACK = {help = 'Command to start the JACK stuff, for users.',}, STOP = {help = 'Command to stop the JACK stuff, for users.', func = function(a, args, i) --[=[ _.killEmAll{'qsynth'} __[[ a2j_control --stop sleep 2 a2j_control --exit sleep 2 ]]:Do() _.killEmAll{'alsa_in', 'alsa_out', 'zita-a2j', 'zita-j2a', 'aseqjoy', 'jack-plumbing'} __[[ sleep 2 jack_control stop sleep 2 jack_control exit sleep 2 ]]:Do() _.killEmAll{'jmcore', 'qjackctl'} -- Catia is python, and no easy way to kill it. -- Also it keeps jackdbus alive, no matter how hard you kill it. __"pkill -TERM -u $USER -f catia":Do() __"sleep 2":Do() _.killEmAll{'jackdbus', 'a2jmidid'} ]=] end }, help = {help = 'Print help.', func = function(a, args, i) print(Help) os.exit(0) end }, ['--help'] = {help}, } _.parse(arg, options) __[[ echo -n "This'll print forking later. " date sleep 2 ]]:log():show():fork('echo -n "later is "; date') print('') local GUI = 'qjackctl' if _.runnable'catia' then GUI = 'catia' end local speaker = 'espeak' if _.runnable'espeak-ng' then speaker = 'espeak-ng' end print('' .. GUI .. ' ' .. speaker) print('') for i,l in ipairs(__'free -h':log():Do().lines) do print(l) end print('') for i,l in ipairs(__'uname -a\nfree -h':log():Do().lines) do print(l) end print('') __'uname -a':log():Then'free -h':show():Do() print('') __{'uname -a', 'free -h'}:log():show():Do() print('') __[[#!/bin/bash echo "Hello world from bash." ]]:log():show():Do() print('') __[[#!/usr/bin/env luajit print('Hello ' .. "world " .. [=[from]=] .. " Lua.") ]]:log():show():Do() print('') __[[#!/usr/bin/perl print "Hello world from perl.\n"; ]]:log():show():Do() print('') -- No idea why this isn't working. __[[#!/usr/bin/php ]]:log():show():Do() print('') -- Note no indent for Python, coz whitespace is significant. __[[#!/usr/bin/env python3 print("Hello world from python.") ]]:log():show():Do() print('') __[[#!/usr/bin/ruby puts "Hello world from ruby." ]]:log():show():Do() print('') print(__'true':log():show():Do().status) print(__'false':log():show():Do().status) print(__'exit 42':log():show():Do().status) print(__'return 42':log():show():Do().status) print(__'command NoSuchCommand':log():show():Do().status) --__'qpdfview':forkOnce() --__'qpdfview':forkOnce() print('') for i,a in ipairs(arg) do print('arg[' .. i .. '] = ' .. a) end print('') for k,a in pairs(arg) do print('arg[' .. k .. '] = ' .. a) end __'date':log():show():Do() __'date; sleep 5; date':log():show():Do()