From 77290442baf9647b1d51da9a51d94a3a9a0bd5bd Mon Sep 17 00:00:00 2001 From: Will Abson Date: Wed, 27 Jul 2016 09:31:25 +0100 Subject: [PATCH] Re-work demo-shell script --- scripts/npm-link-demo-shell.sh | 120 ++++++++------------------------- 1 file changed, 27 insertions(+), 93 deletions(-) diff --git a/scripts/npm-link-demo-shell.sh b/scripts/npm-link-demo-shell.sh index a0ba56f46b..1d4eb5845c 100755 --- a/scripts/npm-link-demo-shell.sh +++ b/scripts/npm-link-demo-shell.sh @@ -1,103 +1,37 @@ #!/usr/bin/env bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +components_dir="$DIR/../ng2-components" -npm install -g typings +npm_opts="--loglevel=silent" -#LINK CORE -echo "====== linking component: ng2-alfresco-core =====" -cd "$DIR/../ng2-components/ng2-alfresco-core" -npm link -npm run typings -npm run build +function link_alfresco_ng2_deps() { + cd $1 + for dep in $( list-dependencies '^ng2-(alfresco|activiti)-' ); do + npm link --ignore-scripts $npm_opts "$dep" + done +} -#LINK FORM -echo "====== linking component: ng2-activiti-form =====" -cd "$DIR/../ng2-components/ng2-activiti-form" -npm link ng2-alfresco-core -npm link -npm run typings -npm run build +npm install $npm_opts -g typings +npm install $npm_opts -g @wabson/list-dependencies -#LINK DATATABLE -echo "====== linking component: ng2-alfresco-datatable =====" -cd "$DIR/../ng2-components/ng2-alfresco-datatable" -npm link ng2-alfresco-core -npm link -npm run typings -npm run build - -#LINK DOCUMENTLIST -echo "====== linking component: ng2-alfresco-documentlist =====" -cd "$DIR/../ng2-components/ng2-alfresco-documentlist" -npm link ng2-alfresco-core -npm link ng2-alfresco-datatable -npm link -npm run typings -npm run build - -#LINK WEBSCRIPT -echo "====== linking component: ng2-alfresco-webscript =====" -cd "$DIR/../ng2-components/ng2-alfresco-webscript" -npm link ng2-alfresco-core -npm link ng2-alfresco-datatable -npm link -npm run typings -npm run build - -#LINK TASKLIST -echo "====== linking component: ng2-activiti-tasklist =====" -cd "$DIR/../ng2-components/ng2-activiti-tasklist" -npm link ng2-alfresco-core -npm link ng2-alfresco-datatable -npm link ng2-activiti-form -npm link -npm run typings -npm run build - -#LINK PROCESSLIST -echo "====== linking component: ng2-activiti-processlist =====" -cd "$DIR/../ng2-components/ng2-activiti-processlist" -npm link ng2-alfresco-core -npm link ng2-alfresco-datatable -npm link -npm run typings -npm run build - -#LINK ALL THE OTHERS COMPONENTS -for PACKAGE in \ - ng2-alfresco-login \ - ng2-alfresco-search \ - ng2-alfresco-upload \ - ng2-alfresco-viewer \ - ng2-alfresco-webscript -do - DESTDIR="$DIR/../ng2-components/${PACKAGE}" - echo "====== linking component: ${PACKAGE} =====" - cd "$DESTDIR" - npm link ng2-alfresco-core - npm link - npm run typings - npm run build +# First link each component into /usr/local/lib/node_modules +for comp_dir in $( ls "$components_dir" ); do + echo "Link $components_dir/$comp_dir" + test -f "$components_dir/$comp_dir/package.json" && cd "$components_dir/$comp_dir" && npm link --ignore-scripts done +# Now link inter-dependencies between components +for comp_dir in $( ls "$components_dir" ); do + echo "Link dependencies of $components_dir/$comp_dir" + test -f "$components_dir/$comp_dir/package.json" && link_alfresco_ng2_deps "$components_dir/$comp_dir" +done -#LINK ALL THE COMPONENTS INSIDE THE DEMOSHELL -cd "$DIR/../demo-shell-ng2" -for PACKAGE in \ - ng2-activiti-form \ - ng2-activiti-processlist \ - ng2-activiti-tasklist \ - ng2-alfresco-core \ - ng2-alfresco-datatable \ - ng2-alfresco-documentlist \ - ng2-alfresco-login \ - ng2-alfresco-search \ - ng2-alfresco-upload \ - ng2-alfresco-viewer \ - ng2-alfresco-webscript -do - DESTDIR="$DIR/../ng2-components/${PACKAGE}" - echo "====== demo shell linking: ${PACKAGE} =====" - npm link ${PACKAGE} -done \ No newline at end of file +# Now run postinstall scripts +for comp_dir in $( ls "$components_dir" ); do + echo "Postinstall $components_dir/$comp_dir" + test -f "$components_dir/$comp_dir/package.json" && cd "$components_dir/$comp_dir" && npm run postinstall +done + +# LINK ALL THE COMPONENTS INSIDE THE DEMOSHELL +link_alfresco_ng2_deps "$DIR/../demo-shell-ng2"