#!/bin/bash
#
# Copyright (C) 2013 Intel Corporation
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of works must retain the original copyright notice, this list
#   of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the original copyright notice,
#   this list of conditions and the following disclaimer in the documentation
#   and/or other materials provided with the distribution.
# * Neither the name of Intel Corporation nor the names of its contributors
#   may be used to endorse or promote products derived from this work without
#   specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Authors:
#        Yue, jianhui <jianhuix.a.yue@intel.com>

function func_install()
{
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    path=$(dirname $(dirname $0))
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%.*}
    pkgcmd -i -t wgt -q -p $PACKAGENAME
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -lt 1 ]; then
      echo "The installation is failed"
      return 1
    else
      echo "The widget is installed successfully"
      return 0
    fi
}

function func_uninstall()
{
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    path=$(dirname $(dirname $0))
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%.*}
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -lt 1 ]; then
      echo "The widget is not installed"
      return 1
    fi
    uninstall_app $APP_NAME
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -lt 1 ]; then
      echo "The installation is failed"
      return 1
    else
      echo "The widget is installed successfully"
      return 0
    fi
}

function func_check()
{
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    p_name=$1
    APP_NAME=${p_name%.*}
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -lt 1 ]; then
      echo "The application id is not exist"
      return 1
    else
      echo "The application id is exist"
      return 0
    fi
}

##usage: uninstall_app $app_name(e.g. uninstall_app tct-sp02-wrt-tests)##
function uninstall_app(){
    pkgids=`pkgcmd -l |grep $1 |awk -F "pkgid" '{print $2}' |awk -F '[' '{print $2}'|awk -F ']' '{print $1}'`
    for pkgid in $pkgids
    do
        pkgcmd -u -t wgt -q -n $pkgid
    done
}

##usage: find_app $app_name(e.g. find_app tct-sp02-wrt-tests)##
function find_app(){
    pkgids=`pkgcmd -l |grep $1 |awk -F "pkgid" '{print $2}' |awk -F '[' '{print $2}'|awk -F ']' '{print $1}'`
    appid=`app_launcher -l | grep $1 | head -n 1| awk  '{print $2}'`
    appid=${appid:1:-1}
}

##usage: launch_app $app_name(e.g. launch_app tct-sp02-wrt-tests)##
function launch_app(){
    find_app $1
    pkgnum=`echo "$appid"|wc -w`
    if [ $pkgnum -eq 1 ]; then
        nohup app_launcher -s  $appid &>/dev/null &
    else
        echo "launch error, please check if exists this app or there are more than one app with this app_name"
    fi
}
