| #!/bin/bash |
| # |
| # use the command line interface to install standard actions deployed |
| # automatically |
| # |
| # To run this command |
| # ./installCatalog.sh <AUTH> <EDGE_HOST> <WSK_CLI> <DOCKER> |
| # AUTH and EDGE_HOST are found in $HOME/.wskprops |
| # WSK_CLI="$OPENWHISK_HOME/bin/wsk" |
| |
| set -e |
| set -x |
| |
| if [ $# -eq 0 ] |
| then |
| echo "Usage: ./installCatalog.sh <authkey> <edgehost> <pathtowskcli> <docker>" |
| fi |
| |
| AUTH="$1" |
| EDGE_HOST="$2" |
| WSK_CLI="$3" |
| DOCKER="$4" |
| INSTALL_WEB_ONLY="${INSTALL_WEB_ONLY:-True}" |
| |
| # If docker is not provided, set to default version. |
| if [ -z "$4" ] |
| then |
| DOCKER="openwhisk/wskdeploy:0.9.3" |
| fi |
| |
| # If the auth key file exists, read the key in the file. Otherwise, take the |
| # first argument as the key itself. |
| if [ -f "$AUTH" ]; then |
| AUTH=`cat $AUTH` |
| fi |
| |
| PACKAGE_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| |
| export WSK_CONFIG_FILE= # override local property file to avoid namespace clashes |
| |
| # make deployWeb.zip & install |
| OLD_PATH=`pwd` |
| cd actions |
| |
| if [ -e deployWeb.zip ] |
| then |
| rm -rf deployWeb.zip |
| fi |
| |
| cp -f deployWeb_package.json package.json |
| zip -r deployWeb.zip package.json deployWeb.js lib/common.js ../../../preInstalled/ |
| |
| cd $OLD_PATH |
| |
| $WSK_CLI -i --apihost "$EDGE_HOST" package update --auth "$AUTH" --shared no "deployWeb" \ |
| -a description "This package offers a convenient way for you to describe and deploy any part of the OpenWhisk programming model using a Manifest file written in YAML." \ |
| -a prettyName "Whisk Deploy Web" |
| |
| $WSK_CLI -i --apihost "$EDGE_HOST" action update --auth "$AUTH" "deployWeb/wskdeploy" "$PACKAGE_HOME/actions/deployWeb.zip" --web true \ |
| -a description 'Creates an action that allows you to run wskdeploy from OpenWhisk' \ |
| -a parameters '[ {"name":"gitUrl", "required":true, "bindTime":true, "description": "The URL to the GitHub repository to deploy"}, {"name":"manifestPath", "required":false, "bindTime":true, "description": "The relative path to the manifest file from the GitHub repo root"}, {"name":"envData", "required":false, "description": "Template-specific environment data object"} ]' \ |
| -a sampleInput '{"gitUrl":"github.com/my_template", "manifestPath":"runtimes/swift", "envData": "{\"ENV_VARIABLE_1\":\"VALUE_1\", \"ENV_VARIABLE_2\":\"VALUE_2\"}"}' \ |
| --docker "$DOCKER" |
| |
| |
| cd actions |
| if [ $INSTALL_WEB_ONLY = False ] |
| then |
| if [ -e deploy.zip ] |
| then |
| rm -rf deploy.zip |
| fi |
| |
| cp -f deploy_package.json package.json |
| zip -r deploy.zip package.json deploy.js lib/common.js |
| |
| cd $OLD_PATH |
| |
| echo Installing wskdeploy package. |
| |
| $WSK_CLI -i --apihost "$EDGE_HOST" package update --auth "$AUTH" --shared yes "deploy" \ |
| -a description "This package offers a convenient way for you to describe and deploy any part of the OpenWhisk programming model using a Manifest file written in YAML." \ |
| -a prettyName "Whisk Deploy" |
| |
| $WSK_CLI -i --apihost "$EDGE_HOST" action update --auth "$AUTH" "deploy/wskdeploy" "$PACKAGE_HOME/actions/deploy.zip" \ |
| -a description 'Creates an action that allows you to run wskdeploy from OpenWhisk' \ |
| -a parameters '[ {"name":"gitUrl", "required":true, "bindTime":true, "description": "The URL to the GitHub repository to deploy"}, {"name":"manifestPath", "required":false, "bindTime":true, "description": "The relative path to the manifest file from the GitHub repo root"}, {"name":"envData", "required":false, "description": "Template-specific environment data object"} ]' \ |
| -a sampleInput '{"gitUrl":"github.com/my_template", "manifestPath":"runtimes/swift", "envData": "{\"ENV_VARIABLE_1\":\"VALUE_1\", \"ENV_VARIABLE_2\":\"VALUE_2\"}"}' \ |
| --docker "$DOCKER" |
| fi |