Including build.sh to run gulp-webpack 49/26649/1
authorShawn Severin <shawn.severin@amdocs.com>
Wed, 20 Dec 2017 16:28:13 +0000 (11:28 -0500)
committerShawn Severin <shawn.severin@amdocs.com>
Wed, 20 Dec 2017 16:29:13 +0000 (11:29 -0500)
Including build.sh so gulp-webpack will be run and the /dist folder will
be created to facilitate the creation of the FE .war file

Issue-ID: AAI-542
Change-Id: I85a567387da1d1a9e6e455e99b13fa6771dd5b9b
Signed-off-by: Shawn Severin <shawn.severin@amdocs.com>
scripts/build/build.sh [new file with mode: 0644]

diff --git a/scripts/build/build.sh b/scripts/build/build.sh
new file mode 100644 (file)
index 0000000..9fd9fd2
--- /dev/null
@@ -0,0 +1,146 @@
+#!/bin/bash
+
+###############################################################################
+#
+# UpdateFEwithExtensions
+#
+# Description:  Update files in the FE code based on the content of the 
+#               extensions.  For this to work, extensions are required to fill 
+#               some files.  The current script does not care too much about
+#               their locations (other than being in the component 
+#               nodes-modules) but the file name must match.
+#
+###############################################################################
+
+UpdateFEwithExtensions(){
+
+  # Append statements to src/app/extensibility/index.js
+  echo "build.sh --- Appending to src/app/extensibility/index.js"
+  extImports=`find -name "extIndex"`
+  for i in $extImports; do
+    cat $i | grep import > tmp.imports
+    cat $i | grep 'components\[' > tmp.components
+
+    sed -i '/Import section/ r tmp.imports' src/app/extensibility/index.js
+    sed -i '/Components section/ r  tmp.components' src/app/extensibility/index.js
+  done
+
+  # Append Reducers to src/views/extensibility/ExtensibilityReducer.js
+  echo "build.sh --- Appending to src/app/extensibility/ExtensibilityReducer.js"
+  extRed=`find -name "extensibilityReducer"`
+  for i in $extRed; do
+    cat $i | grep import | grep -v '{combineReducers}' > tmp.imports.red
+    cat $i | grep ".*:.*," > tmp.exports.red
+
+    sed  -i '/import {combineReducers}/ r tmp.imports.red' src/app/extensibility/ExtensibilityReducer.js
+    sed  -i '/export default combineReducers/ r  tmp.exports.red' src/app/extensibility/ExtensibilityReducer.js
+  done
+
+  # Get extensible json additions
+  echo "build.sh --- Appending to resources/views/extensibleViews.json"
+  extConfig=`find node_modules/ -name "extensibleViews.json"`
+  if [ ! -z "$extConfig" ]; then 
+    jq -n 'input | . +=[inputs]'  resources/views/extensibleViews.json $extConfig > tmp
+    mv tmp resources/views/extensibleViews.json
+  fi
+
+  # Append statements to src/app/overlays/OverlayImports.js
+  echo "build.sh --- Appending to src/app/overlays/OverlayImports.js"
+  extImports=`find -name "OverlayImport.js"`
+  for i in $extImports; do
+    cat $i | grep import > tmp.overlay.imports
+    cat $i | grep 'overlays\[' > tmp.overlays
+
+    sed -i '/Import section/ r tmp.overlay.imports' src/app/overlays/OverlayImports.js
+    sed -i '/Overlays section/ r  tmp.overlays' src/app/overlays/OverlayImports.js
+  done
+
+  # Get overlay json additions
+  echo "build.sh --- Appending to resources/overlays/overlaysDetails.json"
+  extConfig=`find node_modules/ -name "overlaysDetails.json"`
+  if [ ! -z "$extConfig" ]; then 
+    jq -n 'input | . +=[inputs]'  resources/overlays/overlaysDetails.json $extConfig > tmp
+    mv tmp resources/overlays/overlaysDetails.json
+  fi
+
+  # Append scss statements
+  echo "build.sh --- Appending to resources/scss/customViews.scss"
+  touch resources/scss/customViews.scss
+  extSCSS=`find -name "extensibility.scss"`
+  for i in $extSCSS; do 
+    cat $i >> resources/scss/customViews.scss
+  done
+  
+  
+}
+
+updateStyle()
+{
+  echo "build.sh --- Updating style"
+
+  echo "build.sh --- adding fonts"
+  extFonts=`find extStyle/ -name "fonts"`
+  for i in $extFonts; do
+    cp -fr $i/* ./resources/fonts/
+  done
+
+  echo "build.sh --- adding scss"
+  extScss=`find extStyle/ -name "scss"`
+  for i in $extScss; do
+    cp -fr $i/* ./resources/scss/
+  done
+
+  # Append style import to src/app/main.app.jsx
+  echo "build.sh --- Append style import to src/app/main.app.jsx"
+  extImports=`find extStyle/ -name "main.app.jsx"`
+  for i in $extImports; do
+    cat $i | grep import > tmp.style.imports
+    sed -i '/Import Style Section/ r tmp.style.imports' src/app/main.app.jsx
+  done
+
+  if [ -f  tmp.style.imports ]; then
+      sed -i /"import 'resources\/scss\/style\.scss';"/d src/app/main.app.jsx
+  fi
+  
+  # Update bootstrap 
+  echo "build.sh --- Update resources/scss/bootstrap.scss"
+  bootImports=`find extStyle/ -name "bootstrap.scss"`
+  for i in $bootImports; do
+    cat $i | grep import > tmp.bootstrap.import
+    sed -i '/Import Typography Section/ r tmp.bootstrap.import' resources/scss/bootstrap.scss
+  done
+
+  if [ -f  tmp.bootstrap.import ]; then
+      sed -i /"@import \"common\/typography\";"/d resources/scss/bootstrap.scss
+  fi
+}
+
+###############################################################################
+#
+# Main
+#
+###############################################################################
+
+extensionList=$@
+
+# npm install
+echo "build.sh --- Running npm install"
+npm install
+
+# npm install extensions
+echo "build.sh --- parameter provided $extensionList"
+if [ -z "$extensionList" ]; then
+  echo "build.sh --- No extension provided"
+else
+  echo "build.sh --- Running npm --save ${extensionList}"
+  npm install --save ${extensionList}
+  # copy content when there are extensions
+  UpdateFEwithExtensions
+fi
+
+# Copy style
+updateStyle
+
+# npm run build
+echo "build.sh --- Running npm run build"
+npm run build
\ No newline at end of file