progtest: Generate index.js files
parent
47f0f4039b
commit
253f845803
|
@ -1,2 +1,3 @@
|
|||
/node_modules
|
||||
index.js
|
||||
|
||||
|
|
|
@ -17,9 +17,17 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
.PHONY: check test
|
||||
.PHONY: check test modindex FORCE
|
||||
|
||||
namespaces=$(shell find src/ -type d)
|
||||
nsindex=$(addsuffix /index.js, $(namespaces))
|
||||
|
||||
test: check
|
||||
check:
|
||||
PATH="$(PATH):$(CURDIR)/node_modules/mocha/bin" \
|
||||
mocha --harmony_destructuring --recursive test/
|
||||
|
||||
modindex: $(nsindex)
|
||||
%/index.js: FORCE
|
||||
$(CURDIR)/build-aux/gen-index "$*" > "$@"
|
||||
|
||||
|
|
|
@ -27,12 +27,20 @@ const filename = process.argv[ 3 ];
|
|||
const fs = require( 'fs' );
|
||||
const yaml_reader = require( 'js-yaml' );
|
||||
|
||||
const TestCase = require( '../src/TestCase' );
|
||||
const YamlTestReader = require( '../src/reader/YamlTestReader' );
|
||||
const ConstResolver = require( '../src/reader/ConstResolver' );
|
||||
const DateResolver = require( '../src/reader/DateResolver' );
|
||||
const TestRunner = require( '../src/TestRunner' );
|
||||
const ConsoleTestReporter = require( '../src/reporter/ConsoleTestReporter' );
|
||||
const {
|
||||
TestCase,
|
||||
TestRunner,
|
||||
|
||||
reader: {
|
||||
ConstResolver,
|
||||
DateResolver,
|
||||
YamlTestReader
|
||||
},
|
||||
|
||||
reporter: {
|
||||
ConsoleTestReporter
|
||||
},
|
||||
} = require( '../src' );
|
||||
|
||||
const runner = TestRunner(
|
||||
ConsoleTestReporter( process.stdout ),
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
# Generates index.js from sources in destination directory
|
||||
#
|
||||
# Copyright (C) 2014 R-T Specialty, LLC.
|
||||
#
|
||||
# This file is part of liza.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
shopt -s extglob nullglob
|
||||
|
||||
destpath="${1?Destination path required}"
|
||||
|
||||
cat <<EOH
|
||||
/*** GENERATED BY gen-index; DO NOT MODIFY ***/
|
||||
|
||||
module.exports = {
|
||||
EOH
|
||||
|
||||
declare -i i
|
||||
|
||||
# generate require for each module
|
||||
for module in "$destpath"/!(index).js; do
|
||||
modname="$( basename "$module" .js )"
|
||||
|
||||
# humor ECMAScript 3 for now
|
||||
if ((i++)); then
|
||||
echo ,
|
||||
fi
|
||||
|
||||
echo -n " get '$modname'() { return require( './$modname' ); }"
|
||||
done
|
||||
|
||||
# include index.js for any sub-directories (namespace)
|
||||
for dir in $( find "$destpath" -maxdepth 1 -mindepth 1 -type d ); do
|
||||
ns=$( basename "$dir" )
|
||||
|
||||
# humor ECMAScript 3 for now
|
||||
if ((i++)); then
|
||||
echo ,
|
||||
fi
|
||||
|
||||
echo -n " get '$ns'() { return require('./$ns'); }"
|
||||
done
|
||||
|
||||
echo -e "\n};"
|
Loading…
Reference in New Issue