consistent command line processing-usage

This commit is contained in:
kepler155c@gmail.com
2019-07-23 13:30:13 -06:00
parent 3665bfb26a
commit 10df63ae9e
5 changed files with 31 additions and 13 deletions

View File

@@ -12,22 +12,23 @@ local window = _G.window
local function syntax()
printError('Syntax:')
error('mwm sessionName [monitor]')
error('mwm [--config=filename] [monitor]')
end
local args = { ... }
local args = Util.parse(...)
local UID = 0
local multishell = { }
local processes = { }
local parentTerm = term.current()
local sessionFile = args[1] or 'usr/config/mwm'
local sessionFile = args.config or 'usr/config/mwm'
local monName = args[1]
local running
local parentMon
local defaultEnv = Util.shallowCopy(_ENV)
defaultEnv.multishell = multishell
if args[2] then
parentMon = peripheral.wrap(args[2]) or syntax()
if monName then
parentMon = peripheral.wrap(monName) or syntax()
else
parentMon = peripheral.find('monitor') or syntax()
end

View File

@@ -1,3 +1,5 @@
local Util = require('opus.util')
local device = _G.device
local multishell = _ENV.multishell
local os = _G.os
@@ -6,9 +8,9 @@ local term = _G.term
-- list this terminal in the devices list so it's available via
-- peripheral sharing
local args = { ... }
local name = args[1] or error('Syntax: termShare [device name] <title>')
local title = args[2]
local args = Util.parse(...)
local name = args[1] or error('Syntax: termShare [--title=title] term_name')
local title = args.title
device[name] = term.current()
device[name].name = name

View File

@@ -6,7 +6,7 @@ local Proxy = require('core.proxy')
local os = _G.os
local args = { ... }
local remoteId = args[1] or error('mobFollow <remote id>')
local remoteId = args[1] or error('mobFollow REMOTE_ID')
local ni = Proxy.create(remoteId, 'device/neuralInterface')
if not ni then

View File

@@ -3,15 +3,20 @@
Must be run on a mob with the same height.
]]
local Array = require('opus.array')
local Config = require('opus.config')
local neural = require('neural.interface')
local Sound = require('opus.sound')
local Map = require('opus.map')
local os = _G.os
local BREEDING = 'Cow'
local config = Config.load('mobRancher', {
animal = 'Cow',
maxAdults = 12,
})
local WALK_SPEED = 1.5
local MAX_GROWN = 12
neural.assertModules({
'plethora:sensor',
@@ -76,8 +81,17 @@ local function kill(entity)
end
local function getEntities()
local sheep = Array.filter(neural.sense(), function(entity)
if entity.name == 'Sheep' and entity.y > -.5 then
return true
end
end)
if #sheep > config.maxAdults then
return sheep
end
return Map.filter(neural.sense(), function(entity)
if entity.name == BREEDING and entity.y > -.5 then
if entity.name == config.animal and entity.y > -.5 then
return true
end
end)
@@ -107,7 +121,7 @@ while true do
local entities = getEntities()
if Map.size(entities) > MAX_GROWN then
if Map.size(entities) > config.maxAdults then
kill(randomEntity(entities))
else
local entity = getHungry(entities)

View File

@@ -7,6 +7,7 @@ local colors = _G.colors
local fs = _G.fs
UI:configure('Shoplogs', ...)
local args = Util.parse( ... )
local logFile = args[1] or '/usr/swshop.log'