#!/bin/bash

# Copyright: 2023 Virtuozzo International GmbH

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


[ -n "${NODEJSCOMMONENGINELIB_VERSION:-}" ] && return 0;
NODEJSCOMMONENGINELIB_VERSION="0.1";

NODEJS010_DIR="/opt/jelastic-nodejs0.10";
NODEJS012_DIR="/opt/jelastic-nodejs0.12";
NODEJS42_DIR="/opt/jelastic-nodejs4.2";
NODEJS43_DIR="/opt/jelastic-nodejs4.3";
NODEJS45_DIR="/opt/jelastic-nodejs4.5";
NODEJS51_DIR="/opt/jelastic-nodejs5.1";
NODEJS56_DIR="/opt/jelastic-nodejs5.6";
NODEJS65_DIR="/opt/jelastic-nodejs6.5";

NODEJS_DEFAULT_CLI="/usr/bin/node";
NODEJS_DEFAULT_NMP="/usr/bin/npm";


function switchEngine(){

        local engine_type=$1

        case $engine_type in
                "nodejs0.10" )
                 local nodejs_dir=$NODEJS010_DIR;
        ;;
                "nodejs0.12" )
                 local nodejs_dir=$NODEJS012_DIR;
        ;;
                "nodejs4.2" )
                 local nodejs_dir=$NODEJS42_DIR;
        ;;
                "nodejs4.3" )
                 local nodejs_dir=$NODEJS43_DIR;
        ;;
                "nodejs4.5" )
                 local nodejs_dir=$NODEJS45_DIR;
        ;;
                "nodejs5.1" )
                 local nodejs_dir=$NODEJS51_DIR;
        ;;
                "nodejs5.6" )
                 local nodejs_dir=$NODEJS56_DIR;
        ;;
                "nodejs6.5" )
                 local nodejs_dir=$NODEJS65_DIR;
        ;;
        *)
        return 1
        esac
        
        [ -d "$NODEJS010_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS010_DIR" 2>>"$JEM_CALLS_LOG";
        [ -d "$NODEJS012_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS012_DIR" 2>>"$JEM_CALLS_LOG";
        [ -d "$NODEJS42_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS42_DIR" 2>>"$JEM_CALLS_LOG";
        [ -d "$NODEJS43_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS43_DIR" 2>>"$JEM_CALLS_LOG";
        [ -d "$NODEJS45_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS45_DIR" 2>>"$JEM_CALLS_LOG";
        [ -d "$NODEJS51_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS51_DIR" 2>>"$JEM_CALLS_LOG";
        [ -d "$NODEJS56_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS56_DIR" 2>>"$JEM_CALLS_LOG";
        [ -d "$NODEJS65_DIR" ] && chown -R ${DATA_OWNER} "$NODEJS65_DIR" 2>>"$JEM_CALLS_LOG";

        nodejs_bin="${nodejs_dir}/bin/node";
        [ -L "$NODEJS_DEFAULT_CLI" ] && rm "$NODEJS_DEFAULT_CLI";
        [ -d "$nodejs_dir" ] && ln -sf "${nodejs_bin}" "$NODEJS_DEFAULT_CLI";

        nodejs_npm="${nodejs_dir}/bin/npm";
        ln -sf "../lib/node_modules/npm/bin/npm-cli.js" "$nodejs_npm";       
        [ -L "$NODEJS_DEFAULT_NMP" ] && rm "$NODEJS_DEFAULT_NMP";
        [ -d "$nodejs_dir" ] && ln -sf "${nodejs_npm}" "$NODEJS_DEFAULT_NMP";
        ln -sf  "${nodejs_dir}/lib/node_modules/supervisor/lib/cli-wrapper.js"   "/usr/bin/supervisor"
        restartServiceSilent $SERVICE;
}


function describeSetVersion(){
        echo "\n\t<version>\tset nodejs version";
}

