switch to length fn
This commit is contained in:
4
add.ce
4
add.ce
@@ -14,7 +14,7 @@ var fd = use('fd')
|
|||||||
var locator = null
|
var locator = null
|
||||||
var alias = null
|
var alias = null
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--help' || args[i] == '-h') {
|
if (args[i] == '--help' || args[i] == '-h') {
|
||||||
log.console("Usage: cell add <locator> [alias]")
|
log.console("Usage: cell add <locator> [alias]")
|
||||||
log.console("")
|
log.console("")
|
||||||
@@ -51,7 +51,7 @@ if (locator == '.' || starts_with(locator, './') || starts_with(locator, '../')
|
|||||||
if (!alias) {
|
if (!alias) {
|
||||||
// Use the last component of the locator as alias
|
// Use the last component of the locator as alias
|
||||||
var parts = array(locator, '/')
|
var parts = array(locator, '/')
|
||||||
alias = parts[parts.length - 1]
|
alias = parts[length(parts) - 1]
|
||||||
// Remove any version suffix
|
// Remove any version suffix
|
||||||
if (search(alias, '@') != null) {
|
if (search(alias, '@') != null) {
|
||||||
alias = array(alias, '@')[0]
|
alias = array(alias, '@')[0]
|
||||||
|
|||||||
36
bench.ce
36
bench.ce
@@ -24,44 +24,44 @@ def MAX_BATCH_SIZE = 100000000 // 100M iterations max per batch
|
|||||||
|
|
||||||
// Statistical functions
|
// Statistical functions
|
||||||
function median(arr) {
|
function median(arr) {
|
||||||
if (arr.length == 0) return 0
|
if (length(arr) == 0) return 0
|
||||||
var sorted = sort(arr)
|
var sorted = sort(arr)
|
||||||
var mid = floor(arr.length / 2)
|
var mid = floor(length(arr) / 2)
|
||||||
if (arr.length % 2 == 0) {
|
if (length(arr) % 2 == 0) {
|
||||||
return (sorted[mid - 1] + sorted[mid]) / 2
|
return (sorted[mid - 1] + sorted[mid]) / 2
|
||||||
}
|
}
|
||||||
return sorted[mid]
|
return sorted[mid]
|
||||||
}
|
}
|
||||||
|
|
||||||
function mean(arr) {
|
function mean(arr) {
|
||||||
if (arr.length == 0) return 0
|
if (length(arr) == 0) return 0
|
||||||
var sum = 0
|
var sum = 0
|
||||||
arrfor(arr, function(val) {
|
arrfor(arr, function(val) {
|
||||||
sum += val
|
sum += val
|
||||||
})
|
})
|
||||||
return sum / arr.length
|
return sum / length(arr)
|
||||||
}
|
}
|
||||||
|
|
||||||
function stddev(arr, mean_val) {
|
function stddev(arr, mean_val) {
|
||||||
if (arr.length < 2) return 0
|
if (length(arr) < 2) return 0
|
||||||
var sum_sq_diff = 0
|
var sum_sq_diff = 0
|
||||||
arrfor(arr, function(val) {
|
arrfor(arr, function(val) {
|
||||||
var diff = val - mean_val
|
var diff = val - mean_val
|
||||||
sum_sq_diff += diff * diff
|
sum_sq_diff += diff * diff
|
||||||
})
|
})
|
||||||
return math.sqrt(sum_sq_diff / (arr.length - 1))
|
return math.sqrt(sum_sq_diff / (length(arr) - 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
function percentile(arr, p) {
|
function percentile(arr, p) {
|
||||||
if (arr.length == 0) return 0
|
if (length(arr) == 0) return 0
|
||||||
var sorted = sort(arr)
|
var sorted = sort(arr)
|
||||||
var idx = floor(arr.length * p / 100)
|
var idx = floor(arr) * p / 100)
|
||||||
if (idx >= arr.length) idx = arr.length - 1
|
if (idx >= length(arr)) idx = length(arr) - 1
|
||||||
return sorted[idx]
|
return sorted[idx]
|
||||||
}
|
}
|
||||||
|
|
||||||
function min_val(arr) {
|
function min_val(arr) {
|
||||||
if (arr.length == 0) return 0
|
if (length(arr) == 0) return 0
|
||||||
var m = arr[0]
|
var m = arr[0]
|
||||||
arrfor(slice(arr, 1), function(val) {
|
arrfor(slice(arr, 1), function(val) {
|
||||||
if (val < m) m = val
|
if (val < m) m = val
|
||||||
@@ -70,7 +70,7 @@ function min_val(arr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function max_val(arr) {
|
function max_val(arr) {
|
||||||
if (arr.length == 0) return 0
|
if (length(arr) == 0) return 0
|
||||||
var m = arr[0]
|
var m = arr[0]
|
||||||
arrfor(slice(arr, 1), function(val) {
|
arrfor(slice(arr, 1), function(val) {
|
||||||
if (val > m) m = val
|
if (val > m) m = val
|
||||||
@@ -80,7 +80,7 @@ function max_val(arr) {
|
|||||||
|
|
||||||
// Parse arguments similar to test.ce
|
// Parse arguments similar to test.ce
|
||||||
function parse_args() {
|
function parse_args() {
|
||||||
if (args.length == 0) {
|
if (length(args) == 0) {
|
||||||
if (!testlib.is_valid_package('.')) {
|
if (!testlib.is_valid_package('.')) {
|
||||||
log.console('No cell.toml found in current directory')
|
log.console('No cell.toml found in current directory')
|
||||||
return false
|
return false
|
||||||
@@ -99,7 +99,7 @@ function parse_args() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (args[0] == 'package') {
|
if (args[0] == 'package') {
|
||||||
if (args.length < 2) {
|
if (length(args) < 2) {
|
||||||
log.console('Usage: cell bench package <name> [bench]')
|
log.console('Usage: cell bench package <name> [bench]')
|
||||||
log.console(' cell bench package all')
|
log.console(' cell bench package all')
|
||||||
return false
|
return false
|
||||||
@@ -132,7 +132,7 @@ function parse_args() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.length >= 3) {
|
if (length(args) >= 3) {
|
||||||
target_bench = args[2]
|
target_bench = args[2]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -419,7 +419,7 @@ function run_benchmarks(package_name, specific_bench) {
|
|||||||
total: 0
|
total: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bench_files.length == 0) return pkg_result
|
if (length(bench_files) == 0) return pkg_result
|
||||||
|
|
||||||
if (package_name) log.console(`Running benchmarks for ${package_name}`)
|
if (package_name) log.console(`Running benchmarks for ${package_name}`)
|
||||||
else log.console(`Running benchmarks for local package`)
|
else log.console(`Running benchmarks for local package`)
|
||||||
@@ -448,7 +448,7 @@ function run_benchmarks(package_name, specific_bench) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (benches.length > 0) {
|
if (length(benches) > 0) {
|
||||||
log.console(` ${f}`)
|
log.console(` ${f}`)
|
||||||
arrfor(benches, function(b) {
|
arrfor(benches, function(b) {
|
||||||
try {
|
try {
|
||||||
@@ -487,7 +487,7 @@ function run_benchmarks(package_name, specific_bench) {
|
|||||||
pkg_result.total++
|
pkg_result.total++
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_result.benchmarks.length > 0) {
|
if (length(file_result.benchmarks) > 0) {
|
||||||
pkg_result.files.push(file_result)
|
pkg_result.files.push(file_result)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ var sieve = eratosthenes(10000000);
|
|||||||
stone(sieve)
|
stone(sieve)
|
||||||
|
|
||||||
var c = 0
|
var c = 0
|
||||||
for (var i = 0; i < sieve.length; i++)
|
for (var i = 0; i < length(sieve); i++)
|
||||||
if (sieve.read_logical(i)) c++
|
if (sieve.read_logical(i)) c++
|
||||||
|
|
||||||
log.console(c)
|
log.console(c)
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ function benchArrayOps() {
|
|||||||
var iterateTime = measureTime(function() {
|
var iterateTime = measureTime(function() {
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var j = 0; j < 1000; j++) {
|
for (var j = 0; j < 1000; j++) {
|
||||||
for (var i = 0; i < arr.length; i++) {
|
for (var i = 0; i < length(arr); i++) {
|
||||||
sum += arr[i];
|
sum += arr[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ function offsetMomentum() {
|
|||||||
var px = 0;
|
var px = 0;
|
||||||
var py = 0;
|
var py = 0;
|
||||||
var pz = 0;
|
var pz = 0;
|
||||||
var size = bodies.length;
|
var size = length(bodies);
|
||||||
for (var i = 0; i < size; i++) {
|
for (var i = 0; i < size; i++) {
|
||||||
var body = bodies[i];
|
var body = bodies[i];
|
||||||
var mass = body.mass;
|
var mass = body.mass;
|
||||||
@@ -86,7 +86,7 @@ function offsetMomentum() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function advance(dt) {
|
function advance(dt) {
|
||||||
var size = bodies.length;
|
var size = length(bodies);
|
||||||
|
|
||||||
for (var i = 0; i < size; i++) {
|
for (var i = 0; i < size; i++) {
|
||||||
var bodyi = bodies[i];
|
var bodyi = bodies[i];
|
||||||
@@ -127,7 +127,7 @@ function advance(dt) {
|
|||||||
|
|
||||||
function energy() {
|
function energy() {
|
||||||
var e = 0;
|
var e = 0;
|
||||||
var size = bodies.length;
|
var size = length(bodies);
|
||||||
|
|
||||||
for (var i = 0; i < size; i++) {
|
for (var i = 0; i < size; i++) {
|
||||||
var bodyi = bodies[i];
|
var bodyi = bodies[i];
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ function A(i,j) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Au(u,v) {
|
function Au(u,v) {
|
||||||
for (var i=0; i<u.length; ++i) {
|
for (var i=0; i<length(u); ++i) {
|
||||||
var t = 0;
|
var t = 0;
|
||||||
for (var j=0; j<u.length; ++j)
|
for (var j=0; j<length(u); ++j)
|
||||||
t += A(i,j) * u[j];
|
t += A(i,j) * u[j];
|
||||||
|
|
||||||
v[i] = t;
|
v[i] = t;
|
||||||
@@ -15,9 +15,9 @@ function Au(u,v) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Atu(u,v) {
|
function Atu(u,v) {
|
||||||
for (var i=0; i<u.length; ++i) {
|
for (var i=0; i<length(u); ++i) {
|
||||||
var t = 0;
|
var t = 0;
|
||||||
for (var j=0; j<u.length; ++j)
|
for (var j=0; j<length(u); ++j)
|
||||||
t += A(j,i) * u[j];
|
t += A(j,i) * u[j];
|
||||||
|
|
||||||
v[i] = t;
|
v[i] = t;
|
||||||
|
|||||||
@@ -81,9 +81,9 @@ log.console("===================\n");
|
|||||||
// We'll run each benchmark scenario in turn.
|
// We'll run each benchmark scenario in turn.
|
||||||
for (var bench of benchmarks) {
|
for (var bench of benchmarks) {
|
||||||
// We'll measure how long it takes to do 'iterations' *for each test value*
|
// We'll measure how long it takes to do 'iterations' *for each test value*
|
||||||
// in bench.data. The total loop count is `bench.iterations * bench.data.length`.
|
// in bench.data. The total loop count is `bench.iterations * bench.data)`.
|
||||||
// Then we compute an overall encode+decode throughput (ops/s).
|
// Then we compute an overall encode+decode throughput (ops/s).
|
||||||
var totalIterations = bench.iterations * bench.data.length;
|
var totalIterations = bench.iterations * bench.data);
|
||||||
|
|
||||||
// We'll define a function that does a roundTrip for *each* data item in bench.data
|
// We'll define a function that does a roundTrip for *each* data item in bench.data
|
||||||
// to measure in one loop iteration. Then we multiply by bench.iterations.
|
// to measure in one loop iteration. Then we multiply by bench.iterations.
|
||||||
@@ -97,7 +97,7 @@ for (var bench of benchmarks) {
|
|||||||
var opsPerSec = (totalIterations / elapsedSec).toFixed(1);
|
var opsPerSec = (totalIterations / elapsedSec).toFixed(1);
|
||||||
|
|
||||||
log.console(`${bench.name}:`);
|
log.console(`${bench.name}:`);
|
||||||
log.console(` Iterations: ${bench.iterations} × ${bench.data.length} data items = ${totalIterations}`);
|
log.console(` Iterations: ${bench.iterations} × ${length(bench.data)} data items = ${totalIterations}`);
|
||||||
log.console(` Elapsed: ${elapsedSec.toFixed(3)} s`);
|
log.console(` Elapsed: ${elapsedSec.toFixed(3)} s`);
|
||||||
log.console(` Throughput: ${opsPerSec} encode+decode ops/sec\n`);
|
log.console(` Throughput: ${opsPerSec} encode+decode ops/sec\n`);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
// Parse command line arguments
|
// Parse command line arguments
|
||||||
if (arg.length != 2) {
|
if (length(arg) != 2) {
|
||||||
log.console('Usage: cell benchmark_wota_nota_json.ce <LibraryName> <ScenarioName>');
|
log.console('Usage: cell benchmark_wota_nota_json.ce <LibraryName> <ScenarioName>');
|
||||||
$stop()
|
$stop()
|
||||||
}
|
}
|
||||||
@@ -32,7 +32,7 @@ def libraries = [
|
|||||||
decode: wota.decode,
|
decode: wota.decode,
|
||||||
// wota produces an ArrayBuffer. We'll count `buffer.byteLength` as size.
|
// wota produces an ArrayBuffer. We'll count `buffer.byteLength` as size.
|
||||||
getSize(encoded) {
|
getSize(encoded) {
|
||||||
return encoded.length;
|
return length(encoded);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -41,7 +41,7 @@ def libraries = [
|
|||||||
decode: nota.decode,
|
decode: nota.decode,
|
||||||
// nota also produces an ArrayBuffer:
|
// nota also produces an ArrayBuffer:
|
||||||
getSize(encoded) {
|
getSize(encoded) {
|
||||||
return encoded.length;
|
return length(encoded);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -52,7 +52,7 @@ def libraries = [
|
|||||||
// as a rough "size". Alternatively, you could convert to UTF-8 for
|
// as a rough "size". Alternatively, you could convert to UTF-8 for
|
||||||
// a more accurate byte size. Here we just use `string.length`.
|
// a more accurate byte size. Here we just use `string.length`.
|
||||||
getSize(encodedStr) {
|
getSize(encodedStr) {
|
||||||
return encodedStr.length;
|
return length(encodedStr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@@ -135,7 +135,7 @@ function runBenchmarkForLibrary(lib, bench) {
|
|||||||
var encodeTime = measureTime(() => {
|
var encodeTime = measureTime(() => {
|
||||||
for (var i = 0; i < bench.iterations; i++) {
|
for (var i = 0; i < bench.iterations; i++) {
|
||||||
// For each data item, encode it
|
// For each data item, encode it
|
||||||
for (var j = 0; j < bench.data.length; j++) {
|
for (var j = 0; j < length(bench.data); j++) {
|
||||||
var e = lib.encode(bench.data[j]);
|
var e = lib.encode(bench.data[j]);
|
||||||
// store only in the very first iteration, so we can decode them later
|
// store only in the very first iteration, so we can decode them later
|
||||||
// but do not store them every iteration or we blow up memory.
|
// but do not store them every iteration or we blow up memory.
|
||||||
@@ -185,7 +185,7 @@ if (!bench) {
|
|||||||
var { encodeTime, decodeTime, totalSize } = runBenchmarkForLibrary(lib, bench);
|
var { encodeTime, decodeTime, totalSize } = runBenchmarkForLibrary(lib, bench);
|
||||||
|
|
||||||
// Output json for easy parsing by hyperfine or other tools
|
// Output json for easy parsing by hyperfine or other tools
|
||||||
var totalOps = bench.iterations * bench.data.length;
|
var totalOps = bench.iterations * length(bench.data);
|
||||||
var result = {
|
var result = {
|
||||||
lib: lib_name,
|
lib: lib_name,
|
||||||
scenario: scenario_name,
|
scenario: scenario_name,
|
||||||
|
|||||||
12
build.ce
12
build.ce
@@ -18,9 +18,9 @@ var buildtype = 'release'
|
|||||||
var force_rebuild = false
|
var force_rebuild = false
|
||||||
var dry_run = false
|
var dry_run = false
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '-t' || args[i] == '--target') {
|
if (args[i] == '-t' || args[i] == '--target') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
target = args[++i]
|
target = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('-t requires a target')
|
log.error('-t requires a target')
|
||||||
@@ -28,14 +28,14 @@ for (var i = 0; i < args.length; i++) {
|
|||||||
}
|
}
|
||||||
} else if (args[i] == '-p' || args[i] == '--package') {
|
} else if (args[i] == '-p' || args[i] == '--package') {
|
||||||
// Legacy support for -p flag
|
// Legacy support for -p flag
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
target_package = args[++i]
|
target_package = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('-p requires a package name')
|
log.error('-p requires a package name')
|
||||||
$stop()
|
$stop()
|
||||||
}
|
}
|
||||||
} else if (args[i] == '-b' || args[i] == '--buildtype') {
|
} else if (args[i] == '-b' || args[i] == '--buildtype') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
buildtype = args[++i]
|
buildtype = args[++i]
|
||||||
if (buildtype != 'release' && buildtype != 'debug' && buildtype != 'minsize') {
|
if (buildtype != 'release' && buildtype != 'debug' && buildtype != 'minsize') {
|
||||||
log.error('Invalid buildtype: ' + buildtype + '. Must be release, debug, or minsize')
|
log.error('Invalid buildtype: ' + buildtype + '. Must be release, debug, or minsize')
|
||||||
@@ -52,7 +52,7 @@ for (var i = 0; i < args.length; i++) {
|
|||||||
} else if (args[i] == '--list-targets') {
|
} else if (args[i] == '--list-targets') {
|
||||||
log.console('Available targets:')
|
log.console('Available targets:')
|
||||||
var targets = build.list_targets()
|
var targets = build.list_targets()
|
||||||
for (var t = 0; t < targets.length; t++) {
|
for (var t = 0; t < length(targets); t++) {
|
||||||
log.console(' ' + targets[t])
|
log.console(' ' + targets[t])
|
||||||
}
|
}
|
||||||
$stop()
|
$stop()
|
||||||
@@ -110,7 +110,7 @@ if (target_package) {
|
|||||||
|
|
||||||
var success = 0
|
var success = 0
|
||||||
var failed = 0
|
var failed = 0
|
||||||
for (var i = 0; i < results.length; i++) {
|
for (var i = 0; i < length(results); i++) {
|
||||||
if (results[i].library) {
|
if (results[i].library) {
|
||||||
success++
|
success++
|
||||||
} else if (results[i].error) {
|
} else if (results[i].error) {
|
||||||
|
|||||||
4
clean.ce
4
clean.ce
@@ -24,7 +24,7 @@ var clean_fetch = false
|
|||||||
var deep = false
|
var deep = false
|
||||||
var dry_run = false
|
var dry_run = false
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--build') {
|
if (args[i] == '--build') {
|
||||||
clean_build = true
|
clean_build = true
|
||||||
} else if (args[i] == '--fetch') {
|
} else if (args[i] == '--fetch') {
|
||||||
@@ -170,7 +170,7 @@ if (clean_fetch) {
|
|||||||
// Execute or report
|
// Execute or report
|
||||||
if (dry_run) {
|
if (dry_run) {
|
||||||
log.console("Would delete:")
|
log.console("Would delete:")
|
||||||
if (files_to_delete.length == 0 && dirs_to_delete.length == 0) {
|
if (length(files_to_delete) == 0 && length(dirs_to_delete) == 0) {
|
||||||
log.console(" (nothing to clean)")
|
log.console(" (nothing to clean)")
|
||||||
} else {
|
} else {
|
||||||
arrfor(files_to_delete, function(f) {
|
arrfor(files_to_delete, function(f) {
|
||||||
|
|||||||
4
clone.ce
4
clone.ce
@@ -7,7 +7,7 @@ var fd = use('fd')
|
|||||||
var http = use('http')
|
var http = use('http')
|
||||||
var miniz = use('miniz')
|
var miniz = use('miniz')
|
||||||
|
|
||||||
if (args.length < 2) {
|
if (length(args) < 2) {
|
||||||
log.console("Usage: cell clone <origin> <path>")
|
log.console("Usage: cell clone <origin> <path>")
|
||||||
log.console("Clones a cell package to a local path and links it.")
|
log.console("Clones a cell package to a local path and links it.")
|
||||||
$stop()
|
$stop()
|
||||||
@@ -93,7 +93,7 @@ try {
|
|||||||
if (zip.is_directory(i)) continue
|
if (zip.is_directory(i)) continue
|
||||||
var filename = zip.get_filename(i)
|
var filename = zip.get_filename(i)
|
||||||
var parts = array(filename, '/')
|
var parts = array(filename, '/')
|
||||||
if (parts.length <= 1) continue
|
if (length(parts) <= 1) continue
|
||||||
|
|
||||||
// Skip the first directory (repo-commit prefix)
|
// Skip the first directory (repo-commit prefix)
|
||||||
parts.shift()
|
parts.shift()
|
||||||
|
|||||||
18
config.ce
18
config.ce
@@ -47,14 +47,14 @@ function get_nested(obj, path) {
|
|||||||
// Set a value in nested object using path
|
// Set a value in nested object using path
|
||||||
function set_nested(obj, path, value) {
|
function set_nested(obj, path, value) {
|
||||||
var current = obj
|
var current = obj
|
||||||
for (var i = 0; i < path.length - 1; i++) {
|
for (var i = 0; i < length(path) - 1; i++) {
|
||||||
var segment = path[i]
|
var segment = path[i]
|
||||||
if (is_null(current[segment]) || !is_object(current[segment])) {
|
if (is_null(current[segment]) || !is_object(current[segment])) {
|
||||||
current[segment] = {}
|
current[segment] = {}
|
||||||
}
|
}
|
||||||
current = current[segment]
|
current = current[segment]
|
||||||
}
|
}
|
||||||
current[path[path.length - 1]] = value
|
current[path[length(path) - 1]] = value
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse value string into appropriate type
|
// Parse value string into appropriate type
|
||||||
@@ -96,7 +96,7 @@ function print_config(obj, prefix = '') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Main command handling
|
// Main command handling
|
||||||
if (args.length == 0) {
|
if (length(args) == 0) {
|
||||||
print_help()
|
print_help()
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
@@ -125,7 +125,7 @@ switch (command) {
|
|||||||
break
|
break
|
||||||
|
|
||||||
case 'get':
|
case 'get':
|
||||||
if (args.length < 2) {
|
if (length(args) < 2) {
|
||||||
log.error("Usage: cell config get <key>")
|
log.error("Usage: cell config get <key>")
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
@@ -145,7 +145,7 @@ switch (command) {
|
|||||||
break
|
break
|
||||||
|
|
||||||
case 'set':
|
case 'set':
|
||||||
if (args.length < 3) {
|
if (length(args) < 3) {
|
||||||
log.error("Usage: cell config set <key> <value>")
|
log.error("Usage: cell config set <key> <value>")
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
@@ -175,7 +175,7 @@ switch (command) {
|
|||||||
|
|
||||||
case 'actor':
|
case 'actor':
|
||||||
// Handle actor-specific configuration
|
// Handle actor-specific configuration
|
||||||
if (args.length < 3) {
|
if (length(args) < 3) {
|
||||||
log.error("Usage: cell config actor <name> <command> [options]")
|
log.error("Usage: cell config actor <name> <command> [options]")
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
@@ -190,7 +190,7 @@ switch (command) {
|
|||||||
|
|
||||||
switch (actor_cmd) {
|
switch (actor_cmd) {
|
||||||
case 'list':
|
case 'list':
|
||||||
if (array(config.actors[actor_name]).length == 0) {
|
if (length(array(config.actors[actor_name])) == 0) {
|
||||||
log.console("No configuration for actor: " + actor_name)
|
log.console("No configuration for actor: " + actor_name)
|
||||||
} else {
|
} else {
|
||||||
log.console("# Configuration for actor: " + actor_name)
|
log.console("# Configuration for actor: " + actor_name)
|
||||||
@@ -200,7 +200,7 @@ switch (command) {
|
|||||||
break
|
break
|
||||||
|
|
||||||
case 'get':
|
case 'get':
|
||||||
if (args.length < 4) {
|
if (length(args) < 4) {
|
||||||
log.error("Usage: cell config actor <name> get <key>")
|
log.error("Usage: cell config actor <name> get <key>")
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
@@ -217,7 +217,7 @@ switch (command) {
|
|||||||
break
|
break
|
||||||
|
|
||||||
case 'set':
|
case 'set':
|
||||||
if (args.length < 5) {
|
if (length(args) < 5) {
|
||||||
log.error("Usage: cell config actor <name> set <key> <value>")
|
log.error("Usage: cell config actor <name> set <key> <value>")
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
|
|||||||
4
fetch.ce
4
fetch.ce
@@ -13,7 +13,7 @@ var shop = use('internal/shop')
|
|||||||
// Parse arguments
|
// Parse arguments
|
||||||
var target_pkg = null
|
var target_pkg = null
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--help' || args[i] == '-h') {
|
if (args[i] == '--help' || args[i] == '-h') {
|
||||||
log.console("Usage: cell fetch [package]")
|
log.console("Usage: cell fetch [package]")
|
||||||
log.console("Fetch package zips from remote sources.")
|
log.console("Fetch package zips from remote sources.")
|
||||||
@@ -83,7 +83,7 @@ var parts = []
|
|||||||
if (downloaded_count > 0) parts.push(`${text(downloaded_count)} downloaded`)
|
if (downloaded_count > 0) parts.push(`${text(downloaded_count)} downloaded`)
|
||||||
if (cached_count > 0) parts.push(`${text(cached_count)} cached`)
|
if (cached_count > 0) parts.push(`${text(cached_count)} cached`)
|
||||||
if (fail_count > 0) parts.push(`${text(fail_count)} failed`)
|
if (fail_count > 0) parts.push(`${text(fail_count)} failed`)
|
||||||
if (parts.length == 0) parts.push("nothing to fetch")
|
if (length(parts) == 0) parts.push("nothing to fetch")
|
||||||
log.console("Fetch complete: " + text(parts, ", "))
|
log.console("Fetch complete: " + text(parts, ", "))
|
||||||
|
|
||||||
$stop()
|
$stop()
|
||||||
|
|||||||
16
graph.ce
16
graph.ce
@@ -23,9 +23,9 @@ var format = 'tree'
|
|||||||
var show_locked = false
|
var show_locked = false
|
||||||
var show_world = false
|
var show_world = false
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--format' || args[i] == '-f') {
|
if (args[i] == '--format' || args[i] == '-f') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
format = args[++i]
|
format = args[++i]
|
||||||
if (format != 'tree' && format != 'dot' && format != 'json') {
|
if (format != 'tree' && format != 'dot' && format != 'json') {
|
||||||
log.error('Invalid format: ' + format + '. Must be tree, dot, or json')
|
log.error('Invalid format: ' + format + '. Must be tree, dot, or json')
|
||||||
@@ -163,13 +163,13 @@ if (format == 'tree') {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
for (var i = 0; i < children.length; i++) {
|
for (var i = 0; i < length(children); i++) {
|
||||||
var child_prefix = prefix + (is_last ? " " : "| ")
|
var child_prefix = prefix + (is_last ? " " : "| ")
|
||||||
print_tree(children[i].to, child_prefix, i == children.length - 1, visited)
|
print_tree(children[i].to, child_prefix, i == length(children) - 1, visited)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < roots.length; i++) {
|
for (var i = 0; i < length(roots); i++) {
|
||||||
log.console(roots[i])
|
log.console(roots[i])
|
||||||
|
|
||||||
var children = []
|
var children = []
|
||||||
@@ -179,11 +179,11 @@ if (format == 'tree') {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
for (var j = 0; j < children.length; j++) {
|
for (var j = 0; j < length(children); j++) {
|
||||||
print_tree(children[j].to, "", j == children.length - 1, {})
|
print_tree(children[j].to, "", j == length(children) - 1, {})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i < roots.length - 1) log.console("")
|
if (i < length(roots) - 1) log.console("")
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (format == 'dot') {
|
} else if (format == 'dot') {
|
||||||
|
|||||||
2
help.ce
2
help.ce
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
var fd = use('fd')
|
var fd = use('fd')
|
||||||
|
|
||||||
var command = args.length > 0 ? args[0] : null
|
var command = length(args) > 0 ? args[0] : null
|
||||||
|
|
||||||
// Display specific command help
|
// Display specific command help
|
||||||
if (command) {
|
if (command) {
|
||||||
|
|||||||
14
install.ce
14
install.ce
@@ -14,7 +14,7 @@ var build = use('build')
|
|||||||
var pkg = use('package')
|
var pkg = use('package')
|
||||||
var fd = use('fd')
|
var fd = use('fd')
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (length(args) < 1) {
|
||||||
log.console("Usage: cell install <locator> [options]")
|
log.console("Usage: cell install <locator> [options]")
|
||||||
log.console("")
|
log.console("")
|
||||||
log.console("Options:")
|
log.console("Options:")
|
||||||
@@ -29,9 +29,9 @@ var target_triple = null
|
|||||||
var refresh = false
|
var refresh = false
|
||||||
var dry_run = false
|
var dry_run = false
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--target' || args[i] == '-t') {
|
if (args[i] == '--target' || args[i] == '-t') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
target_triple = args[++i]
|
target_triple = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('--target requires a triple')
|
log.error('--target requires a triple')
|
||||||
@@ -142,7 +142,7 @@ if (dry_run) {
|
|||||||
var exists = lock[p] != null
|
var exists = lock[p] != null
|
||||||
log.console(" " + p + (exists ? " (already installed)" : ""))
|
log.console(" " + p + (exists ? " (already installed)" : ""))
|
||||||
})
|
})
|
||||||
if (skipped_packages.length > 0) {
|
if (length(skipped_packages) > 0) {
|
||||||
log.console("")
|
log.console("")
|
||||||
log.console("Would skip (missing local paths):")
|
log.console("Would skip (missing local paths):")
|
||||||
arrfor(skipped_packages, function(p) {
|
arrfor(skipped_packages, function(p) {
|
||||||
@@ -176,9 +176,9 @@ arrfor(packages_to_install, function(p) {
|
|||||||
install_package(p)
|
install_package(p)
|
||||||
})
|
})
|
||||||
|
|
||||||
var summary = "Installed " + text(packages_to_install.length) + " package(s)."
|
var summary = "Installed " + text(length(packages_to_install)) + " package(s)."
|
||||||
if (skipped_packages.length > 0) {
|
if (length(skipped_packages) > 0) {
|
||||||
summary += " Skipped " + text(skipped_packages.length) + " missing local path(s)."
|
summary += " Skipped " + text(length(skipped_packages)) + " missing local path(s)."
|
||||||
}
|
}
|
||||||
log.console(summary)
|
log.console(summary)
|
||||||
|
|
||||||
|
|||||||
10
link.ce
10
link.ce
@@ -17,7 +17,7 @@ var shop = use('internal/shop')
|
|||||||
var fd = use('fd')
|
var fd = use('fd')
|
||||||
var toml = use('toml')
|
var toml = use('toml')
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (length(args) < 1) {
|
||||||
log.console("Usage: link <command> [args] or link [package] <target>")
|
log.console("Usage: link <command> [args] or link [package] <target>")
|
||||||
log.console("Commands:")
|
log.console("Commands:")
|
||||||
log.console(" list List all active links")
|
log.console(" list List all active links")
|
||||||
@@ -45,15 +45,15 @@ if (cmd == 'list') {
|
|||||||
log.console("Syncing links...")
|
log.console("Syncing links...")
|
||||||
var result = link.sync_all(shop)
|
var result = link.sync_all(shop)
|
||||||
log.console("Synced " + result.synced + " link(s)")
|
log.console("Synced " + result.synced + " link(s)")
|
||||||
if (result.errors.length > 0) {
|
if (length(result.errors) > 0) {
|
||||||
log.console("Errors:")
|
log.console("Errors:")
|
||||||
for (var i = 0; i < result.errors.length; i++) {
|
for (var i = 0; i < length(result.errors); i++) {
|
||||||
log.console(" " + result.errors[i])
|
log.console(" " + result.errors[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (cmd == 'delete' || cmd == 'rm') {
|
} else if (cmd == 'delete' || cmd == 'rm') {
|
||||||
if (args.length < 2) {
|
if (length(args) < 2) {
|
||||||
log.console("Usage: link delete <package>")
|
log.console("Usage: link delete <package>")
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
@@ -92,7 +92,7 @@ if (cmd == 'list') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var arg1 = args[start_idx]
|
var arg1 = args[start_idx]
|
||||||
var arg2 = (args.length > start_idx + 1) ? args[start_idx + 1] : null
|
var arg2 = (length(args) > start_idx + 1) ? args[start_idx + 1] : null
|
||||||
|
|
||||||
if (!arg1) {
|
if (!arg1) {
|
||||||
log.console("Error: target or package required")
|
log.console("Error: target or package required")
|
||||||
|
|||||||
18
list.ce
18
list.ce
@@ -13,7 +13,7 @@ var fd = use('fd')
|
|||||||
var mode = 'local'
|
var mode = 'local'
|
||||||
var target_pkg = null
|
var target_pkg = null
|
||||||
|
|
||||||
if (args && args.length > 0) {
|
if (args && length(args) > 0) {
|
||||||
if (args[0] == 'shop') {
|
if (args[0] == 'shop') {
|
||||||
mode = 'shop'
|
mode = 'shop'
|
||||||
} else if (args[0] == '--help' || args[0] == '-h') {
|
} else if (args[0] == '--help' || args[0] == '-h') {
|
||||||
@@ -62,12 +62,12 @@ function print_deps(ctx, indent) {
|
|||||||
for (var k in deps) aliases.push(k)
|
for (var k in deps) aliases.push(k)
|
||||||
aliases = sort(aliases)
|
aliases = sort(aliases)
|
||||||
|
|
||||||
if (aliases.length == 0) {
|
if (length(aliases) == 0) {
|
||||||
log.console(indent + " (none)")
|
log.console(indent + " (none)")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < aliases.length; i++) {
|
for (var i = 0; i < length(aliases); i++) {
|
||||||
var alias = aliases[i]
|
var alias = aliases[i]
|
||||||
var locator = deps[alias]
|
var locator = deps[alias]
|
||||||
var link_target = links[locator]
|
var link_target = links[locator]
|
||||||
@@ -93,7 +93,7 @@ function print_deps(ctx, indent) {
|
|||||||
status.push("not installed")
|
status.push("not installed")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status.length > 0) {
|
if (length(status) > 0) {
|
||||||
line += " [" + text(status, ", ") + "]"
|
line += " [" + text(status, ", ") + "]"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ if (mode == 'local') {
|
|||||||
log.console("")
|
log.console("")
|
||||||
|
|
||||||
var packages = shop.list_packages()
|
var packages = shop.list_packages()
|
||||||
if (packages.length == 0) {
|
if (length(packages) == 0) {
|
||||||
log.console(" (none)")
|
log.console(" (none)")
|
||||||
} else {
|
} else {
|
||||||
packages = sort(packages)
|
packages = sort(packages)
|
||||||
@@ -136,7 +136,7 @@ if (mode == 'local') {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (linked_pkgs.length > 0) {
|
if (length(linked_pkgs) > 0) {
|
||||||
log.console("Linked packages:")
|
log.console("Linked packages:")
|
||||||
arrfor(linked_pkgs, function(p) {
|
arrfor(linked_pkgs, function(p) {
|
||||||
var target = links[p]
|
var target = links[p]
|
||||||
@@ -145,7 +145,7 @@ if (mode == 'local') {
|
|||||||
log.console("")
|
log.console("")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (local_pkgs.length > 0) {
|
if (length(local_pkgs) > 0) {
|
||||||
log.console("Local packages:")
|
log.console("Local packages:")
|
||||||
arrfor(local_pkgs, function(p) {
|
arrfor(local_pkgs, function(p) {
|
||||||
log.console(" " + p)
|
log.console(" " + p)
|
||||||
@@ -153,7 +153,7 @@ if (mode == 'local') {
|
|||||||
log.console("")
|
log.console("")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (remote_pkgs.length > 0) {
|
if (length(remote_pkgs) > 0) {
|
||||||
log.console("Remote packages:")
|
log.console("Remote packages:")
|
||||||
arrfor(remote_pkgs, function(p) {
|
arrfor(remote_pkgs, function(p) {
|
||||||
var lock_entry = lock[p]
|
var lock_entry = lock[p]
|
||||||
@@ -163,7 +163,7 @@ if (mode == 'local') {
|
|||||||
log.console("")
|
log.console("")
|
||||||
}
|
}
|
||||||
|
|
||||||
log.console("Total: " + text(packages.length) + " package(s)")
|
log.console("Total: " + text(length(packages)) + " package(s)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
8
ls.ce
8
ls.ce
@@ -12,10 +12,10 @@ var programs = package.list_programs(pkg)
|
|||||||
|
|
||||||
log.console("Modules in " + pkg + ":")
|
log.console("Modules in " + pkg + ":")
|
||||||
modules = sort(modules)
|
modules = sort(modules)
|
||||||
if (modules.length == 0) {
|
if (length(modules) == 0) {
|
||||||
log.console(" (none)")
|
log.console(" (none)")
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < modules.length; i++) {
|
for (var i = 0; i < length(modules); i++) {
|
||||||
log.console(" " + modules[i])
|
log.console(" " + modules[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -23,10 +23,10 @@ if (modules.length == 0) {
|
|||||||
log.console("")
|
log.console("")
|
||||||
log.console("Programs in " + pkg + ":")
|
log.console("Programs in " + pkg + ":")
|
||||||
programs = sort(programs)
|
programs = sort(programs)
|
||||||
if (programs.length == 0) {
|
if (length(programs) == 0) {
|
||||||
log.console(" (none)")
|
log.console(" (none)")
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < programs.length; i++) {
|
for (var i = 0; i < length(programs); i++) {
|
||||||
log.console(" " + programs[i])
|
log.console(" " + programs[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
pack.ce
16
pack.ce
@@ -14,7 +14,7 @@ var output_name = 'app'
|
|||||||
var target_package = null
|
var target_package = null
|
||||||
var buildtype = 'debug'
|
var buildtype = 'debug'
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (length(args) < 1) {
|
||||||
log.error('Usage: cell pack <package> [options]')
|
log.error('Usage: cell pack <package> [options]')
|
||||||
log.error('')
|
log.error('')
|
||||||
log.error('Options:')
|
log.error('Options:')
|
||||||
@@ -29,23 +29,23 @@ if (args.length < 1) {
|
|||||||
|
|
||||||
target_package = args[0]
|
target_package = args[0]
|
||||||
|
|
||||||
for (var i = 1; i < args.length; i++) {
|
for (var i = 1; i < length(args); i++) {
|
||||||
if (args[i] == '-t' || args[i] == '--target') {
|
if (args[i] == '-t' || args[i] == '--target') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
target = args[++i]
|
target = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('-t requires a target')
|
log.error('-t requires a target')
|
||||||
$stop()
|
$stop()
|
||||||
}
|
}
|
||||||
} else if (args[i] == '-o' || args[i] == '--output') {
|
} else if (args[i] == '-o' || args[i] == '--output') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
output_name = args[++i]
|
output_name = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('-o requires an output name')
|
log.error('-o requires an output name')
|
||||||
$stop()
|
$stop()
|
||||||
}
|
}
|
||||||
} else if (args[i] == '-b' || args[i] == '--buildtype') {
|
} else if (args[i] == '-b' || args[i] == '--buildtype') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
buildtype = args[++i]
|
buildtype = args[++i]
|
||||||
if (buildtype != 'release' && buildtype != 'debug' && buildtype != 'minsize') {
|
if (buildtype != 'release' && buildtype != 'debug' && buildtype != 'minsize') {
|
||||||
log.error('Invalid buildtype: ' + buildtype + '. Must be release, debug, or minsize')
|
log.error('Invalid buildtype: ' + buildtype + '. Must be release, debug, or minsize')
|
||||||
@@ -87,7 +87,7 @@ if (target && !build.has_target(target)) {
|
|||||||
var packages = ['core']
|
var packages = ['core']
|
||||||
var deps = pkg_tools.gather_dependencies(target_package)
|
var deps = pkg_tools.gather_dependencies(target_package)
|
||||||
|
|
||||||
for (var i = 0; i < deps.length; i++) {
|
for (var i = 0; i < length(deps); i++) {
|
||||||
packages.push(deps[i])
|
packages.push(deps[i])
|
||||||
}
|
}
|
||||||
packages.push(target_package)
|
packages.push(target_package)
|
||||||
@@ -95,7 +95,7 @@ packages.push(target_package)
|
|||||||
// Remove duplicates
|
// Remove duplicates
|
||||||
var unique_packages = []
|
var unique_packages = []
|
||||||
var seen = {}
|
var seen = {}
|
||||||
for (var i = 0; i < packages.length; i++) {
|
for (var i = 0; i < length(packages); i++) {
|
||||||
if (!seen[packages[i]]) {
|
if (!seen[packages[i]]) {
|
||||||
seen[packages[i]] = true
|
seen[packages[i]] = true
|
||||||
unique_packages.push(packages[i])
|
unique_packages.push(packages[i])
|
||||||
@@ -109,7 +109,7 @@ arrfor(packages, function(package) {
|
|||||||
shop.extract(package)
|
shop.extract(package)
|
||||||
})
|
})
|
||||||
|
|
||||||
log.console('Building static binary from ' + text(packages.length) + ' packages: ' + text(packages, ', '))
|
log.console('Building static binary from ' + text(length(packages)) + ' packages: ' + text(packages, ', '))
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var result = build.build_static(packages, target, output_name, buildtype)
|
var result = build.build_static(packages, target, output_name, buildtype)
|
||||||
|
|||||||
12
qopconv.ce
12
qopconv.ce
@@ -111,14 +111,14 @@ function pack(sources, archive_path, read_dir) {
|
|||||||
log.console("Created " + archive_path)
|
log.console("Created " + archive_path)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_array(arg) || arg.length < 1) {
|
if (!is_array(arg) || length(arg) < 1) {
|
||||||
print_usage()
|
print_usage()
|
||||||
} else {
|
} else {
|
||||||
if (arg[0] == "-l") {
|
if (arg[0] == "-l") {
|
||||||
if (arg.length < 2) print_usage()
|
if (length(arg) < 2) print_usage()
|
||||||
else list(arg[1])
|
else list(arg[1])
|
||||||
} else if (arg[0] == "-u") {
|
} else if (arg[0] == "-u") {
|
||||||
if (arg.length < 2) print_usage()
|
if (length(arg) < 2) print_usage()
|
||||||
else unpack(arg[1])
|
else unpack(arg[1])
|
||||||
} else {
|
} else {
|
||||||
var sources = []
|
var sources = []
|
||||||
@@ -130,12 +130,12 @@ if (!is_array(arg) || arg.length < 1) {
|
|||||||
i = 2
|
i = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
for (; i < arg.length - 1; i++) {
|
for (; i < length(arg) - 1; i++) {
|
||||||
sources.push(arg[i])
|
sources.push(arg[i])
|
||||||
}
|
}
|
||||||
archive = arg[arg.length - 1]
|
archive = arg[length(arg) - 1]
|
||||||
|
|
||||||
if (sources.length == 0) {
|
if (length(sources) == 0) {
|
||||||
print_usage()
|
print_usage()
|
||||||
} else {
|
} else {
|
||||||
pack(sources, archive, read_dir)
|
pack(sources, archive, read_dir)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ var target_pkg = null
|
|||||||
var prune = false
|
var prune = false
|
||||||
var dry_run = false
|
var dry_run = false
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--prune') {
|
if (args[i] == '--prune') {
|
||||||
prune = true
|
prune = true
|
||||||
} else if (args[i] == '--dry-run') {
|
} else if (args[i] == '--dry-run') {
|
||||||
@@ -99,7 +99,7 @@ if (dry_run) {
|
|||||||
shop.remove(p)
|
shop.remove(p)
|
||||||
})
|
})
|
||||||
|
|
||||||
log.console("Removed " + text(packages_to_remove.length) + " package(s).")
|
log.console("Removed " + text(length(packages_to_remove)) + " package(s).")
|
||||||
}
|
}
|
||||||
|
|
||||||
$stop()
|
$stop()
|
||||||
|
|||||||
16
resolve.ce
16
resolve.ce
@@ -21,9 +21,9 @@ var target_triple = null
|
|||||||
var show_locked = false
|
var show_locked = false
|
||||||
var refresh_first = false
|
var refresh_first = false
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--target' || args[i] == '-t') {
|
if (args[i] == '--target' || args[i] == '-t') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
target_triple = args[++i]
|
target_triple = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('--target requires a triple')
|
log.error('--target requires a triple')
|
||||||
@@ -118,7 +118,7 @@ for (var locator in all_deps) {
|
|||||||
sorted = sort(sorted, "locator")
|
sorted = sort(sorted, "locator")
|
||||||
sorted = sort(sorted, "depth")
|
sorted = sort(sorted, "depth")
|
||||||
|
|
||||||
for (var i = 0; i < sorted.length; i++) {
|
for (var i = 0; i < length(sorted); i++) {
|
||||||
var locator = sorted[i].locator
|
var locator = sorted[i].locator
|
||||||
var depth = sorted[i].depth
|
var depth = sorted[i].depth
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ for (var i = 0; i < sorted.length; i++) {
|
|||||||
line += " -> " + link_target
|
line += " -> " + link_target
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status_parts.length > 0) {
|
if (length(status_parts) > 0) {
|
||||||
line += " [" + text(status_parts, ", ") + "]"
|
line += " [" + text(status_parts, ", ") + "]"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,12 +179,12 @@ for (var i = 0; i < sorted.length; i++) {
|
|||||||
try {
|
try {
|
||||||
var cflags = pkg.get_flags(locator, 'CFLAGS', target_triple)
|
var cflags = pkg.get_flags(locator, 'CFLAGS', target_triple)
|
||||||
var ldflags = pkg.get_flags(locator, 'LDFLAGS', target_triple)
|
var ldflags = pkg.get_flags(locator, 'LDFLAGS', target_triple)
|
||||||
if (cflags.length > 0 || ldflags.length > 0) {
|
if (length(cflags) > 0 || length(ldflags) > 0) {
|
||||||
log.console(indent + " Compilation inputs:")
|
log.console(indent + " Compilation inputs:")
|
||||||
if (cflags.length > 0) {
|
if (length(cflags) > 0) {
|
||||||
log.console(indent + " CFLAGS: " + text(cflags, ' '))
|
log.console(indent + " CFLAGS: " + text(cflags, ' '))
|
||||||
}
|
}
|
||||||
if (ldflags.length > 0) {
|
if (length(ldflags) > 0) {
|
||||||
log.console(indent + " LDFLAGS: " + text(ldflags, ' '))
|
log.console(indent + " LDFLAGS: " + text(ldflags, ' '))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -195,6 +195,6 @@ for (var i = 0; i < sorted.length; i++) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.console("")
|
log.console("")
|
||||||
log.console("Total: " + text(sorted.length) + " package(s)")
|
log.console("Total: " + text(length(sorted)) + " package(s)")
|
||||||
|
|
||||||
$stop()
|
$stop()
|
||||||
|
|||||||
10
search.ce
10
search.ce
@@ -4,7 +4,7 @@
|
|||||||
var shop = use('internal/shop')
|
var shop = use('internal/shop')
|
||||||
var pkg = use('package')
|
var pkg = use('package')
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (length(args) < 1) {
|
||||||
log.console("Usage: cell search <query>")
|
log.console("Usage: cell search <query>")
|
||||||
log.console("Searches for packages, actors, or modules matching the query.")
|
log.console("Searches for packages, actors, or modules matching the query.")
|
||||||
$stop()
|
$stop()
|
||||||
@@ -46,7 +46,7 @@ arrfor(packages, function(package_name) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Print results
|
// Print results
|
||||||
var total = found_packages.length + found_modules.length + found_actors.length
|
var total = length(found_packages) + length(found_modules) + length(found_actors)
|
||||||
|
|
||||||
if (total == 0) {
|
if (total == 0) {
|
||||||
log.console("No results found for '" + query + "'")
|
log.console("No results found for '" + query + "'")
|
||||||
@@ -54,7 +54,7 @@ if (total == 0) {
|
|||||||
log.console("Found " + text(total) + " result(s) for '" + query + "':")
|
log.console("Found " + text(total) + " result(s) for '" + query + "':")
|
||||||
log.console("")
|
log.console("")
|
||||||
|
|
||||||
if (found_packages.length > 0) {
|
if (length(found_packages) > 0) {
|
||||||
log.console("Packages:")
|
log.console("Packages:")
|
||||||
arrfor(found_packages, function(p) {
|
arrfor(found_packages, function(p) {
|
||||||
log.console(" " + p)
|
log.console(" " + p)
|
||||||
@@ -62,7 +62,7 @@ if (total == 0) {
|
|||||||
log.console("")
|
log.console("")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found_modules.length > 0) {
|
if (length(found_modules) > 0) {
|
||||||
log.console("Modules:")
|
log.console("Modules:")
|
||||||
arrfor(found_modules, function(m) {
|
arrfor(found_modules, function(m) {
|
||||||
log.console(" " + m)
|
log.console(" " + m)
|
||||||
@@ -70,7 +70,7 @@ if (total == 0) {
|
|||||||
log.console("")
|
log.console("")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found_actors.length > 0) {
|
if (length(found_actors) > 0) {
|
||||||
log.console("Actors:")
|
log.console("Actors:")
|
||||||
arrfor(found_actors, function(a) {
|
arrfor(found_actors, function(a) {
|
||||||
log.console(" " + a)
|
log.console(" " + a)
|
||||||
|
|||||||
@@ -30474,7 +30474,6 @@ static JSValue js_string_concat(JSContext *ctx, JSValueConst this_val,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const JSCFunctionListEntry js_string_proto_funcs[] = {
|
static const JSCFunctionListEntry js_string_proto_funcs[] = {
|
||||||
JS_PROP_INT32_DEF("length", 0, JS_PROP_CONFIGURABLE ),
|
|
||||||
JS_CFUNC_DEF("concat", 1, js_string_concat),
|
JS_CFUNC_DEF("concat", 1, js_string_concat),
|
||||||
JS_CFUNC_DEF("toString", 0, js_string_toString ),
|
JS_CFUNC_DEF("toString", 0, js_string_toString ),
|
||||||
JS_CFUNC_DEF("valueOf", 0, js_string_toString ),
|
JS_CFUNC_DEF("valueOf", 0, js_string_toString ),
|
||||||
|
|||||||
80
test.ce
80
test.ce
@@ -43,7 +43,7 @@ function get_current_package_name() {
|
|||||||
// cell test package all - run all tests from all packages
|
// cell test package all - run all tests from all packages
|
||||||
|
|
||||||
function parse_args() {
|
function parse_args() {
|
||||||
if (args.length == 0) {
|
if (length(args) == 0) {
|
||||||
// cell test - run all tests for current package
|
// cell test - run all tests for current package
|
||||||
if (!is_valid_package('.')) {
|
if (!is_valid_package('.')) {
|
||||||
log.console('No cell.toml found in current directory')
|
log.console('No cell.toml found in current directory')
|
||||||
@@ -64,7 +64,7 @@ function parse_args() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (args[0] == 'package') {
|
if (args[0] == 'package') {
|
||||||
if (args.length < 2) {
|
if (length(args) < 2) {
|
||||||
log.console('Usage: cell test package <name> [test]')
|
log.console('Usage: cell test package <name> [test]')
|
||||||
log.console(' cell test package all')
|
log.console(' cell test package all')
|
||||||
return false
|
return false
|
||||||
@@ -102,7 +102,7 @@ function parse_args() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.length >= 3) {
|
if (length(args) >= 3) {
|
||||||
// cell test package <name> <test>
|
// cell test package <name> <test>
|
||||||
target_test = args[2]
|
target_test = args[2]
|
||||||
}
|
}
|
||||||
@@ -146,7 +146,7 @@ function ensure_dir(path) {
|
|||||||
|
|
||||||
var parts = array(path, '/')
|
var parts = array(path, '/')
|
||||||
var current = starts_with(path, '/') ? '/' : ''
|
var current = starts_with(path, '/') ? '/' : ''
|
||||||
for (var i = 0; i < parts.length; i++) {
|
for (var i = 0; i < length(parts); i++) {
|
||||||
if (parts[i] == '') continue
|
if (parts[i] == '') continue
|
||||||
current += parts[i] + '/'
|
current += parts[i] + '/'
|
||||||
if (!fd.is_dir(current)) {
|
if (!fd.is_dir(current)) {
|
||||||
@@ -176,7 +176,7 @@ function collect_actor_tests(package_name, specific_test) {
|
|||||||
|
|
||||||
var files = pkg.list_files(package_name)
|
var files = pkg.list_files(package_name)
|
||||||
var actor_tests = []
|
var actor_tests = []
|
||||||
for (var i = 0; i < files.length; i++) {
|
for (var i = 0; i < length(files); i++) {
|
||||||
var f = files[i]
|
var f = files[i]
|
||||||
// Check if file is in tests/ folder and is a .ce actor
|
// Check if file is in tests/ folder and is a .ce actor
|
||||||
if (starts_with(f, "tests/") && ends_with(f, ".ce")) {
|
if (starts_with(f, "tests/") && ends_with(f, ".ce")) {
|
||||||
@@ -247,7 +247,7 @@ function run_tests(package_name, specific_test) {
|
|||||||
|
|
||||||
var files = pkg.list_files(package_name)
|
var files = pkg.list_files(package_name)
|
||||||
var test_files = []
|
var test_files = []
|
||||||
for (var i = 0; i < files.length; i++) {
|
for (var i = 0; i < length(files); i++) {
|
||||||
var f = files[i]
|
var f = files[i]
|
||||||
// Check if file is in tests/ folder and is a .cm module (not .ce - those are actor tests)
|
// Check if file is in tests/ folder and is a .cm module (not .ce - those are actor tests)
|
||||||
if (starts_with(f, "tests/") && ends_with(f, ".cm")) {
|
if (starts_with(f, "tests/") && ends_with(f, ".cm")) {
|
||||||
@@ -264,12 +264,12 @@ function run_tests(package_name, specific_test) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (test_files.length > 0) {
|
if (length(test_files) > 0) {
|
||||||
if (package_name) log.console(`Running tests for ${package_name}`)
|
if (package_name) log.console(`Running tests for ${package_name}`)
|
||||||
else log.console(`Running tests for local package`)
|
else log.console(`Running tests for local package`)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < test_files.length; i++) {
|
for (var i = 0; i < length(test_files); i++) {
|
||||||
var f = test_files[i]
|
var f = test_files[i]
|
||||||
var mod_path = text(f, 0, -3) // remove .cm
|
var mod_path = text(f, 0, -3) // remove .cm
|
||||||
|
|
||||||
@@ -297,9 +297,9 @@ function run_tests(package_name, specific_test) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tests.length > 0) {
|
if (length(tests) > 0) {
|
||||||
log.console(` ${f}`)
|
log.console(` ${f}`)
|
||||||
for (var j = 0; j < tests.length; j++) {
|
for (var j = 0; j < length(tests); j++) {
|
||||||
var t = tests[j]
|
var t = tests[j]
|
||||||
var test_entry = {
|
var test_entry = {
|
||||||
package: pkg_result.package,
|
package: pkg_result.package,
|
||||||
@@ -381,7 +381,7 @@ if (all_pkgs) {
|
|||||||
|
|
||||||
// Then all packages in lock
|
// Then all packages in lock
|
||||||
var packages = shop.list_packages()
|
var packages = shop.list_packages()
|
||||||
for (var i = 0; i < packages.length; i++) {
|
for (var i = 0; i < length(packages); i++) {
|
||||||
all_results.push(run_tests(packages[i], null))
|
all_results.push(run_tests(packages[i], null))
|
||||||
all_actor_tests = array(all_actor_tests, collect_actor_tests(packages[i], null))
|
all_actor_tests = array(all_actor_tests, collect_actor_tests(packages[i], null))
|
||||||
}
|
}
|
||||||
@@ -391,9 +391,9 @@ if (all_pkgs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Spawn actor tests if any
|
// Spawn actor tests if any
|
||||||
if (all_actor_tests.length > 0) {
|
if (length(all_actor_tests) > 0) {
|
||||||
log.console(`Running ${all_actor_tests.length} actor test(s)...`)
|
log.console(`Running ${length(all_actor_tests)} actor test(s)...`)
|
||||||
for (var i = 0; i < all_actor_tests.length; i++) {
|
for (var i = 0; i < length(all_actor_tests); i++) {
|
||||||
spawn_actor_test(all_actor_tests[i])
|
spawn_actor_test(all_actor_tests[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -402,7 +402,7 @@ if (all_actor_tests.length > 0) {
|
|||||||
function handle_actor_message(msg) {
|
function handle_actor_message(msg) {
|
||||||
var sender = msg.$sender
|
var sender = msg.$sender
|
||||||
var found_idx = -1
|
var found_idx = -1
|
||||||
for (var i = 0; i < pending_actor_tests.length; i++) {
|
for (var i = 0; i < length(pending_actor_tests); i++) {
|
||||||
if (pending_actor_tests[i].actor == sender) {
|
if (pending_actor_tests[i].actor == sender) {
|
||||||
found_idx = i
|
found_idx = i
|
||||||
break
|
break
|
||||||
@@ -426,12 +426,12 @@ function handle_actor_message(msg) {
|
|||||||
results = [msg]
|
results = [msg]
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < results.length; i++) {
|
for (var i = 0; i < length(results); i++) {
|
||||||
var res = results[i] || {}
|
var res = results[i] || {}
|
||||||
var entry = {
|
var entry = {
|
||||||
package: base_entry.package,
|
package: base_entry.package,
|
||||||
file: base_entry.file,
|
file: base_entry.file,
|
||||||
test: res.test || base_entry.test + (results.length > 1 ? `#${i+1}` : ""),
|
test: res.test || base_entry.test + (length(results) > 1 ? `#${i+1}` : ""),
|
||||||
status: "failed",
|
status: "failed",
|
||||||
duration_ns: duration_ns
|
duration_ns: duration_ns
|
||||||
}
|
}
|
||||||
@@ -459,7 +459,7 @@ function check_timeouts() {
|
|||||||
var now = time.number()
|
var now = time.number()
|
||||||
var timed_out = []
|
var timed_out = []
|
||||||
|
|
||||||
for (var i = pending_actor_tests.length - 1; i >= 0; i--) {
|
for (var i = length(pending_actor_tests) - 1; i >= 0; i--) {
|
||||||
var entry = pending_actor_tests[i]
|
var entry = pending_actor_tests[i]
|
||||||
var elapsed_ms = (now - entry.start_time) * 1000
|
var elapsed_ms = (now - entry.start_time) * 1000
|
||||||
if (elapsed_ms > ACTOR_TEST_TIMEOUT) {
|
if (elapsed_ms > ACTOR_TEST_TIMEOUT) {
|
||||||
@@ -467,7 +467,7 @@ function check_timeouts() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < timed_out.length; i++) {
|
for (var i = 0; i < length(timed_out); i++) {
|
||||||
var idx = timed_out[i]
|
var idx = timed_out[i]
|
||||||
var entry = pending_actor_tests[idx]
|
var entry = pending_actor_tests[idx]
|
||||||
pending_actor_tests.splice(idx, 1)
|
pending_actor_tests.splice(idx, 1)
|
||||||
@@ -479,7 +479,7 @@ function check_timeouts() {
|
|||||||
log.console(` TIMEOUT ${entry.test}`)
|
log.console(` TIMEOUT ${entry.test}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pending_actor_tests.length > 0) {
|
if (length(pending_actor_tests) > 0) {
|
||||||
$delay(check_timeouts, 1000)
|
$delay(check_timeouts, 1000)
|
||||||
}
|
}
|
||||||
check_completion()
|
check_completion()
|
||||||
@@ -489,7 +489,7 @@ function check_timeouts() {
|
|||||||
var finalized = false
|
var finalized = false
|
||||||
function check_completion() {
|
function check_completion() {
|
||||||
if (finalized) return
|
if (finalized) return
|
||||||
if (pending_actor_tests.length > 0) return
|
if (length(pending_actor_tests) > 0) return
|
||||||
|
|
||||||
finalized = true
|
finalized = true
|
||||||
finalize_results()
|
finalize_results()
|
||||||
@@ -497,10 +497,10 @@ function check_completion() {
|
|||||||
|
|
||||||
function finalize_results() {
|
function finalize_results() {
|
||||||
// Add actor test results to all_results
|
// Add actor test results to all_results
|
||||||
for (var i = 0; i < actor_test_results.length; i++) {
|
for (var i = 0; i < length(actor_test_results); i++) {
|
||||||
var r = actor_test_results[i]
|
var r = actor_test_results[i]
|
||||||
var pkg_result = null
|
var pkg_result = null
|
||||||
for (var j = 0; j < all_results.length; j++) {
|
for (var j = 0; j < length(all_results); j++) {
|
||||||
if (all_results[j].package == r.package) {
|
if (all_results[j].package == r.package) {
|
||||||
pkg_result = all_results[j]
|
pkg_result = all_results[j]
|
||||||
break
|
break
|
||||||
@@ -512,7 +512,7 @@ function finalize_results() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var file_result = null
|
var file_result = null
|
||||||
for (var j = 0; j < pkg_result.files.length; j++) {
|
for (var j = 0; j < length(pkg_result.files); j++) {
|
||||||
if (pkg_result.files[j].name == r.file) {
|
if (pkg_result.files[j].name == r.file) {
|
||||||
file_result = pkg_result.files[j]
|
file_result = pkg_result.files[j]
|
||||||
break
|
break
|
||||||
@@ -536,7 +536,7 @@ function finalize_results() {
|
|||||||
|
|
||||||
// Calculate totals
|
// Calculate totals
|
||||||
var totals = { total: 0, passed: 0, failed: 0 }
|
var totals = { total: 0, passed: 0, failed: 0 }
|
||||||
for (var i = 0; i < all_results.length; i++) {
|
for (var i = 0; i < length(all_results); i++) {
|
||||||
totals.total += all_results[i].total
|
totals.total += all_results[i].total
|
||||||
totals.passed += all_results[i].passed
|
totals.passed += all_results[i].passed
|
||||||
totals.failed += all_results[i].failed
|
totals.failed += all_results[i].failed
|
||||||
@@ -551,9 +551,9 @@ function finalize_results() {
|
|||||||
|
|
||||||
// If no actor tests, finalize immediately
|
// If no actor tests, finalize immediately
|
||||||
var totals
|
var totals
|
||||||
if (all_actor_tests.length == 0) {
|
if (length(all_actor_tests) == 0) {
|
||||||
totals = { total: 0, passed: 0, failed: 0 }
|
totals = { total: 0, passed: 0, failed: 0 }
|
||||||
for (var i = 0; i < all_results.length; i++) {
|
for (var i = 0; i < length(all_results); i++) {
|
||||||
totals.total += all_results[i].total
|
totals.total += all_results[i].total
|
||||||
totals.passed += all_results[i].passed
|
totals.passed += all_results[i].passed
|
||||||
totals.failed += all_results[i].failed
|
totals.failed += all_results[i].failed
|
||||||
@@ -577,24 +577,24 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
|||||||
|
|
||||||
=== SUMMARY ===
|
=== SUMMARY ===
|
||||||
`
|
`
|
||||||
for (var i = 0; i < all_results.length; i++) {
|
for (var i = 0; i < length(all_results); i++) {
|
||||||
var pkg_res = all_results[i]
|
var pkg_res = all_results[i]
|
||||||
if (pkg_res.total == 0) continue
|
if (pkg_res.total == 0) continue
|
||||||
txt_report += `Package: ${pkg_res.package}\n`
|
txt_report += `Package: ${pkg_res.package}\n`
|
||||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||||
var f = pkg_res.files[j]
|
var f = pkg_res.files[j]
|
||||||
var status = f.failed == 0 ? "PASS" : "FAIL"
|
var status = f.failed == 0 ? "PASS" : "FAIL"
|
||||||
txt_report += ` [${status}] ${f.name} (${f.passed}/${f.tests.length})\n`
|
txt_report += ` [${status}] ${f.name} (${f.passed}/${length(f.tests)})\n`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
txt_report += `\n=== FAILURES ===\n`
|
txt_report += `\n=== FAILURES ===\n`
|
||||||
var has_failures = false
|
var has_failures = false
|
||||||
for (var i = 0; i < all_results.length; i++) {
|
for (var i = 0; i < length(all_results); i++) {
|
||||||
var pkg_res = all_results[i]
|
var pkg_res = all_results[i]
|
||||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||||
var f = pkg_res.files[j]
|
var f = pkg_res.files[j]
|
||||||
for (var k = 0; k < f.tests.length; k++) {
|
for (var k = 0; k < length(f.tests); k++) {
|
||||||
var t = f.tests[k]
|
var t = f.tests[k]
|
||||||
if (t.status == "failed") {
|
if (t.status == "failed") {
|
||||||
has_failures = true
|
has_failures = true
|
||||||
@@ -613,13 +613,13 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
|||||||
if (!has_failures) txt_report += `None\n`
|
if (!has_failures) txt_report += `None\n`
|
||||||
|
|
||||||
txt_report += `\n=== DETAILED RESULTS ===\n`
|
txt_report += `\n=== DETAILED RESULTS ===\n`
|
||||||
for (var i = 0; i < all_results.length; i++) {
|
for (var i = 0; i < length(all_results); i++) {
|
||||||
var pkg_res = all_results[i]
|
var pkg_res = all_results[i]
|
||||||
if (pkg_res.total == 0) continue
|
if (pkg_res.total == 0) continue
|
||||||
|
|
||||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||||
var f = pkg_res.files[j]
|
var f = pkg_res.files[j]
|
||||||
for (var k = 0; k < f.tests.length; k++) {
|
for (var k = 0; k < length(f.tests); k++) {
|
||||||
var t = f.tests[k]
|
var t = f.tests[k]
|
||||||
var dur = `${t.duration_ns || 0}ns`
|
var dur = `${t.duration_ns || 0}ns`
|
||||||
var status = t.status == "passed" ? "PASS" : "FAIL"
|
var status = t.status == "passed" ? "PASS" : "FAIL"
|
||||||
@@ -632,14 +632,14 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
|||||||
log.console(`Report written to ${report_dir}/test.txt`)
|
log.console(`Report written to ${report_dir}/test.txt`)
|
||||||
|
|
||||||
// Generate JSON per package
|
// Generate JSON per package
|
||||||
for (var i = 0; i < all_results.length; i++) {
|
for (var i = 0; i < length(all_results); i++) {
|
||||||
var pkg_res = all_results[i]
|
var pkg_res = all_results[i]
|
||||||
if (pkg_res.total == 0) continue
|
if (pkg_res.total == 0) continue
|
||||||
|
|
||||||
var pkg_tests = []
|
var pkg_tests = []
|
||||||
for (var j = 0; j < pkg_res.files.length; j++) {
|
for (var j = 0; j < length(pkg_res.files); j++) {
|
||||||
var f = pkg_res.files[j]
|
var f = pkg_res.files[j]
|
||||||
for (var k = 0; k < f.tests.length; k++) {
|
for (var k = 0; k < length(f.tests); k++) {
|
||||||
pkg_tests.push(f.tests[k])
|
pkg_tests.push(f.tests[k])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -650,7 +650,7 @@ Total: ${totals.total}, Passed: ${totals.passed}, Failed: ${totals.failed}
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If no actor tests, generate reports and stop immediately
|
// If no actor tests, generate reports and stop immediately
|
||||||
if (all_actor_tests.length == 0) {
|
if (length(all_actor_tests) == 0) {
|
||||||
generate_reports(totals)
|
generate_reports(totals)
|
||||||
$stop()
|
$stop()
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
var link = use('link')
|
var link = use('link')
|
||||||
var shop = use('internal/shop')
|
var shop = use('internal/shop')
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (length(args) < 1) {
|
||||||
log.console("Usage: cell unlink <origin>")
|
log.console("Usage: cell unlink <origin>")
|
||||||
log.console("Removes a link and restores the original package.")
|
log.console("Removes a link and restores the original package.")
|
||||||
$stop()
|
$stop()
|
||||||
|
|||||||
14
update.ce
14
update.ce
@@ -20,7 +20,7 @@ var target_triple = null
|
|||||||
var follow_links = false
|
var follow_links = false
|
||||||
|
|
||||||
// Parse arguments
|
// Parse arguments
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--help' || args[i] == '-h') {
|
if (args[i] == '--help' || args[i] == '-h') {
|
||||||
log.console("Usage: cell update [<locator>] [options]")
|
log.console("Usage: cell update [<locator>] [options]")
|
||||||
log.console("")
|
log.console("")
|
||||||
@@ -34,7 +34,7 @@ for (var i = 0; i < args.length; i++) {
|
|||||||
} else if (args[i] == '--build') {
|
} else if (args[i] == '--build') {
|
||||||
run_build = true
|
run_build = true
|
||||||
} else if (args[i] == '--target' || args[i] == '-t') {
|
} else if (args[i] == '--target' || args[i] == '-t') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
target_triple = args[++i]
|
target_triple = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('--target requires a triple')
|
log.error('--target requires a triple')
|
||||||
@@ -107,10 +107,10 @@ if (target_pkg) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var packages = shop.list_packages()
|
var packages = shop.list_packages()
|
||||||
var pkg_count = packages.length
|
var pkg_count = length(packages)
|
||||||
log.console("Checking for updates (" + text(pkg_count) + " package" + (pkg_count == 1 ? "" : "s") + ")...")
|
log.console("Checking for updates (" + text(pkg_count) + " package" + (pkg_count == 1 ? "" : "s") + ")...")
|
||||||
|
|
||||||
for (var i = 0; i < packages.length; i++) {
|
for (var i = 0; i < length(packages); i++) {
|
||||||
var pkg = packages[i]
|
var pkg = packages[i]
|
||||||
if (pkg == 'core') continue
|
if (pkg == 'core') continue
|
||||||
|
|
||||||
@@ -120,15 +120,15 @@ if (target_pkg) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updated_packages.length > 0) {
|
if (length(updated_packages)) > 0) {
|
||||||
log.console("Updated " + text(updated_packages.length) + " package" + (updated_packages.length == 1 ? "" : "s") + ".")
|
log.console("Updated " + text(length(updated_packages)) + " package" + (length(updated_packages) == 1 ? "" : "s") + ".")
|
||||||
} else {
|
} else {
|
||||||
log.console("All packages are up to date.")
|
log.console("All packages are up to date.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run build if requested
|
// Run build if requested
|
||||||
if (run_build && updated_packages.length > 0) {
|
if (run_build && length(updated_packages) > 0) {
|
||||||
log.console("")
|
log.console("")
|
||||||
log.console("Building updated packages...")
|
log.console("Building updated packages...")
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
var shop = use('internal/shop')
|
var shop = use('internal/shop')
|
||||||
var fd = use('fd')
|
var fd = use('fd')
|
||||||
|
|
||||||
var cmd = args.length > 0 ? args[0] : null
|
var cmd = length(args) > 0 ? args[0] : null
|
||||||
|
|
||||||
if (cmd == 'link') {
|
if (cmd == 'link') {
|
||||||
if (args.length < 2) {
|
if (length(args) < 2) {
|
||||||
log.console("Usage: cell upgrade link <core_dir>")
|
log.console("Usage: cell upgrade link <core_dir>")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
16
verify.ce
16
verify.ce
@@ -21,11 +21,11 @@ var scope = null
|
|||||||
var deep = false
|
var deep = false
|
||||||
var target_triple = null
|
var target_triple = null
|
||||||
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
for (var i = 0; i < length(args); i++) {
|
||||||
if (args[i] == '--deep') {
|
if (args[i] == '--deep') {
|
||||||
deep = true
|
deep = true
|
||||||
} else if (args[i] == '--target' || args[i] == '-t') {
|
} else if (args[i] == '--target' || args[i] == '-t') {
|
||||||
if (i + 1 < args.length) {
|
if (i + 1 < length(args)) {
|
||||||
target_triple = args[++i]
|
target_triple = args[++i]
|
||||||
} else {
|
} else {
|
||||||
log.error('--target requires a triple')
|
log.error('--target requires a triple')
|
||||||
@@ -139,7 +139,7 @@ function verify_package(locator) {
|
|||||||
// Only check for builds if package has C files
|
// Only check for builds if package has C files
|
||||||
try {
|
try {
|
||||||
var c_files = pkg.get_c_files(locator, target_triple, true)
|
var c_files = pkg.get_c_files(locator, target_triple, true)
|
||||||
if (c_files && c_files.length > 0) {
|
if (c_files && length(c_files) > 0) {
|
||||||
if (!fd.is_file(lib_path)) {
|
if (!fd.is_file(lib_path)) {
|
||||||
add_warning(locator + ": library not built at " + lib_path)
|
add_warning(locator + ": library not built at " + lib_path)
|
||||||
}
|
}
|
||||||
@@ -221,7 +221,7 @@ if (scope == 'shop') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.console("Verifying " + text(packages_to_verify.length) + " package(s)...")
|
log.console("Verifying " + text(length(packages_to_verify)) + " package(s)...")
|
||||||
log.console("")
|
log.console("")
|
||||||
|
|
||||||
// Run verification
|
// Run verification
|
||||||
@@ -234,7 +234,7 @@ arrfor(packages_to_verify, function(p) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Print results
|
// Print results
|
||||||
if (warnings.length > 0) {
|
if (length(warnings) > 0) {
|
||||||
log.console("Warnings:")
|
log.console("Warnings:")
|
||||||
arrfor(warnings, function(w) {
|
arrfor(warnings, function(w) {
|
||||||
log.console(" " + w)
|
log.console(" " + w)
|
||||||
@@ -242,16 +242,16 @@ if (warnings.length > 0) {
|
|||||||
log.console("")
|
log.console("")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (errors.length > 0) {
|
if (length(errors) > 0) {
|
||||||
log.console("Errors:")
|
log.console("Errors:")
|
||||||
arrfor(errors, function(e) {
|
arrfor(errors, function(e) {
|
||||||
log.console(" " + e)
|
log.console(" " + e)
|
||||||
})
|
})
|
||||||
log.console("")
|
log.console("")
|
||||||
log.console("Verification FAILED: " + text(errors.length) + " error(s), " + text(warnings.length) + " warning(s)")
|
log.console("Verification FAILED: " + text(length(errors)) + " error(s), " + text(length(warnings)) + " warning(s)")
|
||||||
// Note: would use process.exit(1) if available
|
// Note: would use process.exit(1) if available
|
||||||
} else {
|
} else {
|
||||||
log.console("Verification PASSED: " + text(checked) + " package(s) checked, " + text(warnings.length) + " warning(s)")
|
log.console("Verification PASSED: " + text(checked) + " package(s) checked, " + text(length(warnings)) + " warning(s)")
|
||||||
}
|
}
|
||||||
|
|
||||||
$stop()
|
$stop()
|
||||||
|
|||||||
8
why.ce
8
why.ce
@@ -1,7 +1,7 @@
|
|||||||
var shop = use('internal/shop')
|
var shop = use('internal/shop')
|
||||||
var pkg = use('package')
|
var pkg = use('package')
|
||||||
|
|
||||||
if (!args || args.length < 1) {
|
if (!args || length(args) < 1) {
|
||||||
log.console("Usage: cell why <package>")
|
log.console("Usage: cell why <package>")
|
||||||
$stop()
|
$stop()
|
||||||
return
|
return
|
||||||
@@ -25,7 +25,7 @@ function search(current_pkg, stack) {
|
|||||||
// Sort for consistent output
|
// Sort for consistent output
|
||||||
var aliases = sort(array(deps))
|
var aliases = sort(array(deps))
|
||||||
|
|
||||||
for (var i = 0; i < aliases.length; i++) {
|
for (var i = 0; i < length(aliases); i++) {
|
||||||
var alias = aliases[i]
|
var alias = aliases[i]
|
||||||
var locator = deps[alias]
|
var locator = deps[alias]
|
||||||
var parsed = shop.parse_package(locator)
|
var parsed = shop.parse_package(locator)
|
||||||
@@ -60,7 +60,7 @@ function search(current_pkg, stack) {
|
|||||||
|
|
||||||
// Recurse if not seen in current stack (cycle detection)
|
// Recurse if not seen in current stack (cycle detection)
|
||||||
var cycle = false
|
var cycle = false
|
||||||
for (var j = 0; j < stack.length; j++) {
|
for (var j = 0; j < length(stack); j++) {
|
||||||
if (stack[j].pkg == canon) {
|
if (stack[j].pkg == canon) {
|
||||||
cycle = true
|
cycle = true
|
||||||
break
|
break
|
||||||
@@ -78,7 +78,7 @@ function print_stack(stack) {
|
|||||||
var output = "project"
|
var output = "project"
|
||||||
log.console(output)
|
log.console(output)
|
||||||
|
|
||||||
for (var i = 0; i < stack.length; i++) {
|
for (var i = 0; i < length(stack); i++) {
|
||||||
var node = stack[i]
|
var node = stack[i]
|
||||||
var indent = ""
|
var indent = ""
|
||||||
for (var j = 0; j <= i; j++) indent += " "
|
for (var j = 0; j <= i; j++) indent += " "
|
||||||
|
|||||||
Reference in New Issue
Block a user