diff --git a/bin/moonbuild.moon b/bin/moonbuild.moon index 198b856..58ab530 100644 --- a/bin/moonbuild.moon +++ b/bin/moonbuild.moon @@ -1,8 +1,9 @@ -- load everything we need import loadfile from require 'moonscript.base' import Context, DepGraph, Executor from require 'moonbuild' -Variable = (require 'moonbuild')['core.Variable'] -import parseargs from (require 'moonbuild')['_cmd.common'] +Variable = require 'moonbuild.core.Variable' +import verbose from require 'moonbuild._common' +import parseargs from require 'moonbuild._cmd.common' argparse = require 'argparse' import sort, concat from table import exit from os @@ -34,12 +35,13 @@ for set in *args.set_list args.parallel = args.parallel == 'y' and 'y' or ((tonumber args.parallel) or error "Invalid argument for -j: #{args.parallel}") error "Invalid argument for -j: #{args.parallel}" if args.parallel != 'y' and (args.parallel<1 or args.parallel%1 != 0) -print "Parsed CLI args" if args.verbose +verbose args.verbose or false +verbose "Parsed CLI args" -- load the buildfile ctx = Context! ctx\load (loadfile args.buildfile), overrides -print "Loaded buildfile" if args.verbose +verbose "Loaded buildfile" -- handle -l and -V if args.list @@ -65,16 +67,16 @@ if args.list_variables -- initialize the buildfile further ctx\init! -print "Initialized buildfile" if args.verbose +verbose "Initialized buildfile" -- create the DAG targets = #args.targets==0 and ctx.defaulttargets or args.targets dag = DepGraph ctx, targets -print "Created dependancy graph" if args.verbose +verbose print "Created dependancy graph" -- execute the build nparallel = args.parallel == 'y' and Executor\getmaxparallel! or args.parallel -print "Building with #{nparallel} max parallel process#{nparallel>1 and "es" or ""}" if args.verbose +verbose "Building with #{nparallel} max parallel process#{nparallel>1 and "es" or ""}" executor = Executor dag, nparallel executor\execute args -print "Finished" if args.verbose +verbose "Finished" diff --git a/moonbuild/_cmd.moon b/moonbuild/_cmd.moon index 68e2ea7..b0db4dd 100644 --- a/moonbuild/_cmd.moon +++ b/moonbuild/_cmd.moon @@ -22,12 +22,11 @@ cmd.escape = escape for f in *({'cmd', 'cmdrst'}) orig = cmd[f] cmd[f] = (...) -> - cli = cmdline ... - verbose -> print "[#{f}] #{cli}" + verbose "[#{f}] #{cmdline ...}" orig ... _sh = cmd.sh cmd.sh = (cli) -> - verbose -> print "[sh] #{cli}" + verbose "[sh] #{cli}" _sh cli -- derived cmd functions diff --git a/moonbuild/_common.moon b/moonbuild/_common.moon index 5737e88..5a6f5d0 100644 --- a/moonbuild/_common.moon +++ b/moonbuild/_common.moon @@ -155,8 +155,10 @@ verbose = (arg) -> arg! if _verbose elseif (type arg) == 'boolean' _verbose = arg + elseif (type arg) == 'string' + print arg if _verbose else - error "_.verbose takes either no argument, a boolean or a function" + error "_.verbose takes either no argument, a boolean, a function or a string" common.flatten = flatten common.first = first diff --git a/moonbuild/_util.moon b/moonbuild/_util.moon index 7d6258d..4eafe5c 100644 --- a/moonbuild/_util.moon +++ b/moonbuild/_util.moon @@ -35,7 +35,7 @@ writefile = (filename, data) -> nil moonc = (infile, outfile) -> - verbose -> print "[moonc] #{infile} #{outfile}" + verbose "[moonc] #{infile} #{outfile}" code, err = to_lua readfile infile error "Failed to compile #{@infile}: #{err}" unless code writefile outfile, code diff --git a/moonbuild/init.moon b/moonbuild/init.moon index 467ef7a..676a994 100644 --- a/moonbuild/init.moon +++ b/moonbuild/init.moon @@ -39,21 +39,19 @@ moonbuild = (...) -> -- create context and DAG ctx = Context! ctx\load (loadfile buildfile), opts - _.verbose -> print "Loaded buildfile" + _.verbose "Loaded buildfile" ctx\init! - _.verbose -> print "Initialized buildfile" + _.verbose "Initialized buildfile" targets = #opts==0 and ctx.defaulttargets or opts dag = DepGraph ctx, targets - _.verbose -> print "Created dependancy graph" + _.verbose "Created dependancy graph" -- and build nparallel = parallel == true and Executor\getmaxparallel! or parallel - _.verbose -> print "Building with #{nparallel} max parallel process#{nparallel>1 and "es" or ""}" + _.verbose "Building with #{nparallel} max parallel process#{nparallel>1 and "es" or ""}" executor = Executor dag, nparallel executor\execute opts - _.verbose -> print "Finished" - - print _.verbose! + _.verbose "Finished" table = { :moonbuild, :_ diff --git a/out/moonbuild b/out/moonbuild index f7f985a..1e5b94a 100755 --- a/out/moonbuild +++ b/out/moonbuild @@ -6,9 +6,11 @@ do local _obj_0 = require('moonbuild') Context, DepGraph, Executor = _obj_0.Context, _obj_0.DepGraph, _obj_0.Executor end -local Variable = (require('moonbuild'))['core.Variable'] +local Variable = require('moonbuild.core.Variable') +local verbose +verbose = require('moonbuild._common').verbose local parseargs -parseargs = (require('moonbuild'))['_cmd.common'].parseargs +parseargs = require('moonbuild._cmd.common').parseargs local argparse = require('argparse') local sort, concat do @@ -55,14 +57,11 @@ args.parallel = args.parallel == 'y' and 'y' or ((tonumber(args.parallel)) or er if args.parallel ~= 'y' and (args.parallel < 1 or args.parallel % 1 ~= 0) then error("Invalid argument for -j: " .. tostring(args.parallel)) end -if args.verbose then - print("Parsed CLI args") -end +verbose(args.verbose or false) +verbose("Parsed CLI args") local ctx = Context() ctx:load((loadfile(args.buildfile)), overrides) -if args.verbose then - print("Loaded buildfile") -end +verbose("Loaded buildfile") if args.list then print("Public targets") local targets, n = { }, 1 @@ -94,20 +93,12 @@ if args.list_variables then exit(0) end ctx:init() -if args.verbose then - print("Initialized buildfile") -end +verbose("Initialized buildfile") local targets = #args.targets == 0 and ctx.defaulttargets or args.targets local dag = DepGraph(ctx, targets) -if args.verbose then - print("Created dependancy graph") -end +verbose(print("Created dependancy graph")) local nparallel = args.parallel == 'y' and Executor:getmaxparallel() or args.parallel -if args.verbose then - print("Building with " .. tostring(nparallel) .. " max parallel process" .. tostring(nparallel > 1 and "es" or "")) -end +verbose("Building with " .. tostring(nparallel) .. " max parallel process" .. tostring(nparallel > 1 and "es" or "")) local executor = Executor(dag, nparallel) executor:execute(args) -if args.verbose then - return print("Finished") -end \ No newline at end of file +return verbose("Finished") \ No newline at end of file diff --git a/out/moonbuild.lua b/out/moonbuild.lua index e22a1b1..62cc1d7 100644 --- a/out/moonbuild.lua +++ b/out/moonbuild.lua @@ -77,18 +77,13 @@ for _index_0 = 1, #_list_0 do local f = _list_0[_index_0] local orig = cmd[f] cmd[f] = function(...) - local cli = cmdline(...) - verbose(function() - return print("[" .. tostring(f) .. "] " .. tostring(cli)) - end) + verbose("[" .. tostring(f) .. "] " .. tostring(cmdline(...))) return orig(...) end end local _sh = cmd.sh cmd.sh = function(cli) - verbose(function() - return print("[sh] " .. tostring(cli)) - end) + verbose("[sh] " .. tostring(cli)) return _sh(cli) end local _cmd = cmd.cmd @@ -679,8 +674,12 @@ verbose = function(arg) end elseif (type(arg)) == 'boolean' then _verbose = arg + elseif (type(arg)) == 'string' then + if _verbose then + return print(arg) + end else - return error("_.verbose takes either no argument, a boolean or a function") + return error("_.verbose takes either no argument, a boolean, a function or a string") end end common.flatten = flatten @@ -1382,9 +1381,7 @@ writefile = function(filename, data) end local moonc moonc = function(infile, outfile) - verbose(function() - return print("[moonc] " .. tostring(infile) .. " " .. tostring(outfile)) - end) + verbose("[moonc] " .. tostring(infile) .. " " .. tostring(outfile)) local code, err = to_lua(readfile(infile)) if not (code) then error("Failed to compile " .. tostring(self.infile) .. ": " .. tostring(err)) @@ -2887,28 +2884,17 @@ moonbuild = function(...) _.verbose(verbose) local ctx = Context() ctx:load((loadfile(buildfile)), opts) - _.verbose(function() - return print("Loaded buildfile") - end) + _.verbose("Loaded buildfile") ctx:init() - _.verbose(function() - return print("Initialized buildfile") - end) + _.verbose("Initialized buildfile") local targets = #opts == 0 and ctx.defaulttargets or opts local dag = DepGraph(ctx, targets) - _.verbose(function() - return print("Created dependancy graph") - end) + _.verbose("Created dependancy graph") local nparallel = parallel == true and Executor:getmaxparallel() or parallel - _.verbose(function() - return print("Building with " .. tostring(nparallel) .. " max parallel process" .. tostring(nparallel > 1 and "es" or "")) - end) + _.verbose("Building with " .. tostring(nparallel) .. " max parallel process" .. tostring(nparallel > 1 and "es" or "")) local executor = Executor(dag, nparallel) executor:execute(opts) - _.verbose(function() - return print("Finished") - end) - return print(_.verbose()) + return _.verbose("Finished") end local table = { moonbuild = moonbuild,