diff options
Diffstat (limited to 'progtest/build-aux/gen-index')
-rwxr-xr-x | progtest/build-aux/gen-index | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/progtest/build-aux/gen-index b/progtest/build-aux/gen-index new file mode 100755 index 0000000..5cdb350 --- /dev/null +++ b/progtest/build-aux/gen-index @@ -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};" |