16e7c69efSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. 26e7c69efSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 36e7c69efSopenharmony_ci# you may not use this file except in compliance with the License. 46e7c69efSopenharmony_ci# You may obtain a copy of the License at 56e7c69efSopenharmony_ci 66e7c69efSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 76e7c69efSopenharmony_ci 86e7c69efSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 96e7c69efSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 106e7c69efSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 116e7c69efSopenharmony_ci# See the License for the specific language governing permissions and 126e7c69efSopenharmony_ci# limitations under the License. 136e7c69efSopenharmony_ci 146e7c69efSopenharmony_ci#!/bin/bash 156e7c69efSopenharmony_ci 166e7c69efSopenharmony_ci 176e7c69efSopenharmony_ci#npm 186e7c69efSopenharmony_cinpm config set @ohos:registry=https://repo.harmonyos.com/npm/ 196e7c69efSopenharmony_ci 206e7c69efSopenharmony_cidate_time=`date +"%Y%m%d%H%M%S"` 216e7c69efSopenharmony_ciCUR_PATH=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd) 226e7c69efSopenharmony_ciBASE_PATH=$(dirname ${CUR_PATH}) 236e7c69efSopenharmony_ciTEMP_SDK_PAK=${BASE_PATH}/temp_sdk_${date_time} 246e7c69efSopenharmony_ci 256e7c69efSopenharmony_ciarg_url="" 266e7c69efSopenharmony_ciarg_sdk_path="" 276e7c69efSopenharmony_ciarg_api_version="" 286e7c69efSopenharmony_ciarg_help="0" 296e7c69efSopenharmony_ci 306e7c69efSopenharmony_cifunction clear_dir(){ 316e7c69efSopenharmony_ci if [ ! -d "$1" ]; then 326e7c69efSopenharmony_ci mkdir -p $1 336e7c69efSopenharmony_ci else 346e7c69efSopenharmony_ci rm -rf $1/* 356e7c69efSopenharmony_ci fi 366e7c69efSopenharmony_ci} 376e7c69efSopenharmony_ci 386e7c69efSopenharmony_cifunction get_sdk_type(){ 396e7c69efSopenharmony_ci sdk_url=${1} 406e7c69efSopenharmony_ci is_public=$(echo ${sdk_url} | grep "\-public") 416e7c69efSopenharmony_ci if [[ ${is_public} != "" ]]; then 426e7c69efSopenharmony_ci arg_sdk_type="public" 436e7c69efSopenharmony_ci return 446e7c69efSopenharmony_ci fi 456e7c69efSopenharmony_ci is_full=$(echo ${sdk_url} | grep "\-full") 466e7c69efSopenharmony_ci if [[ ${is_full} != "" ]]; then 476e7c69efSopenharmony_ci arg_sdk_type="full" 486e7c69efSopenharmony_ci fi 496e7c69efSopenharmony_ci arg_sdk_type="unknown" 506e7c69efSopenharmony_ci} 516e7c69efSopenharmony_ci 526e7c69efSopenharmony_ci 536e7c69efSopenharmony_cifunction print_help() { 546e7c69efSopenharmony_ci cat <<EOF 556e7c69efSopenharmony_ci use update_sdk [options] <mainclass> [args...] 566e7c69efSopenharmony_ci 576e7c69efSopenharmony_ci --url=[sdk url] 586e7c69efSopenharmony_ci --sdk_path=[public sdk absolute address] 596e7c69efSopenharmony_ci 606e7c69efSopenharmony_ci --help - prints help screen 616e7c69efSopenharmony_ci 626e7c69efSopenharmony_ciEOF 636e7c69efSopenharmony_ci} 646e7c69efSopenharmony_ci 656e7c69efSopenharmony_cifunction parse_arguments() { 666e7c69efSopenharmony_ci local helperKey=""; 676e7c69efSopenharmony_ci local helperValue=""; 686e7c69efSopenharmony_ci local current=""; 696e7c69efSopenharmony_ci 706e7c69efSopenharmony_ci while [ "$1" != "" ]; do 716e7c69efSopenharmony_ci current=$1; 726e7c69efSopenharmony_ci helperKey=${current#*--}; 736e7c69efSopenharmony_ci helperKey=${helperKey%%=*}; 746e7c69efSopenharmony_ci helperKey=$(echo "$helperKey" | tr '-' '_'); 756e7c69efSopenharmony_ci helperValue=${current#*=}; 766e7c69efSopenharmony_ci if [ "$helperValue" == "$current" ]; then 776e7c69efSopenharmony_ci helperValue="1"; 786e7c69efSopenharmony_ci fi 796e7c69efSopenharmony_ci # echo "eval arg_$helperKey=\"$helperValue\""; 806e7c69efSopenharmony_ci 816e7c69efSopenharmony_ci eval "arg_$helperKey=\"$helperValue\""; 826e7c69efSopenharmony_ci shift 836e7c69efSopenharmony_ci done 846e7c69efSopenharmony_ci} 856e7c69efSopenharmony_ci 866e7c69efSopenharmony_ciparse_arguments ${@}; 876e7c69efSopenharmony_ci 886e7c69efSopenharmony_ciif [ "$arg_help" != "0" ]; then 896e7c69efSopenharmony_ci print_help; 906e7c69efSopenharmony_ci exit 1; 916e7c69efSopenharmony_cifi 926e7c69efSopenharmony_ci 936e7c69efSopenharmony_ciif [ "${arg_url}" == "" ]; then 946e7c69efSopenharmony_ci echo "--url is not null" 956e7c69efSopenharmony_ci exit 1; 966e7c69efSopenharmony_cifi 976e7c69efSopenharmony_ci 986e7c69efSopenharmony_ciif [ "${arg_sdk_path}" == "" ]; then 996e7c69efSopenharmony_ci echo "--sdk_path is not null" 1006e7c69efSopenharmony_ci exit 1; 1016e7c69efSopenharmony_cifi 1026e7c69efSopenharmony_ci 1036e7c69efSopenharmony_ci 1046e7c69efSopenharmony_ci 1056e7c69efSopenharmony_ci# 添加交互式判断 sdk目录是否删除 判空等操作 1066e7c69efSopenharmony_ciclear_dir ${arg_sdk_path} 1076e7c69efSopenharmony_ciclear_dir ${TEMP_SDK_PAK} 1086e7c69efSopenharmony_cicd ${TEMP_SDK_PAK} 1096e7c69efSopenharmony_ciwget ${arg_url} 1106e7c69efSopenharmony_ci 1116e7c69efSopenharmony_cifor z in `ls` 1126e7c69efSopenharmony_cido 1136e7c69efSopenharmony_ci if [ "${z##*.}" == "gz" ]; then 1146e7c69efSopenharmony_ci tar -zxf ${z} 1156e7c69efSopenharmony_ci fi 1166e7c69efSopenharmony_cidone 1176e7c69efSopenharmony_ci 1186e7c69efSopenharmony_cisource_path="" 1196e7c69efSopenharmony_cifor z in ${TEMP_SDK_PAK}/* 1206e7c69efSopenharmony_cido 1216e7c69efSopenharmony_ci if [ -d ${z}/linux ]; then 1226e7c69efSopenharmony_ci source_path=${z} 1236e7c69efSopenharmony_ci fi 1246e7c69efSopenharmony_cidone 1256e7c69efSopenharmony_cicd ${source_path}/linux/ 1266e7c69efSopenharmony_cifor z in `ls` 1276e7c69efSopenharmony_cido 1286e7c69efSopenharmony_ci if [ "${z##*.}" != "zip" ]; then 1296e7c69efSopenharmony_ci continue 1306e7c69efSopenharmony_ci fi 1316e7c69efSopenharmony_ci echo "unzip ${z}ing..." 1326e7c69efSopenharmony_ci unzip -oq ${z} 1336e7c69efSopenharmony_cidone 1346e7c69efSopenharmony_ci 1356e7c69efSopenharmony_ciif [ "${arg_api_version}" == "" ]; then 1366e7c69efSopenharmony_ci for z in ${source_path}/linux/* 1376e7c69efSopenharmony_ci do 1386e7c69efSopenharmony_ci if [ "${z##*.}" == "zip" ]; then 1396e7c69efSopenharmony_ci continue 1406e7c69efSopenharmony_ci fi 1416e7c69efSopenharmony_ci if [ -f "${z}" ]; then 1426e7c69efSopenharmony_ci continue 1436e7c69efSopenharmony_ci fi 1446e7c69efSopenharmony_ci if [ -f "${z}/oh-uni-package.json" ]; then 1456e7c69efSopenharmony_ci arg_api_version=$(cat ${z}/oh-uni-package.json | grep "apiVersion") 1466e7c69efSopenharmony_ci break 1476e7c69efSopenharmony_ci fi 1486e7c69efSopenharmony_ci done 1496e7c69efSopenharmony_cifi 1506e7c69efSopenharmony_ciecho "apiVersion is ${arg_api_version##*:}" 1516e7c69efSopenharmony_citarget_path=${arg_sdk_path} 1526e7c69efSopenharmony_cifor z in ${source_path}/linux/* 1536e7c69efSopenharmony_cido 1546e7c69efSopenharmony_ci if [ "${z##*.}" == "zip" ]; then 1556e7c69efSopenharmony_ci continue 1566e7c69efSopenharmony_ci fi 1576e7c69efSopenharmony_ci if [ -f "${z}" ]; then 1586e7c69efSopenharmony_ci continue 1596e7c69efSopenharmony_ci fi 1606e7c69efSopenharmony_ci echo "moving... ${z} to ${target_path}" 1616e7c69efSopenharmony_ci mv ${z} ${target_path}/ 1626e7c69efSopenharmony_ci if [ ${z##*/} == "ets" ]; then 1636e7c69efSopenharmony_ci echo "ets npm install" 1646e7c69efSopenharmony_ci cd ${target_path}/${z##*/}/build-tools/ets-loader 1656e7c69efSopenharmony_ci npm install > /dev/null 2>&1 1666e7c69efSopenharmony_ci fi 1676e7c69efSopenharmony_ci if [ ${z##*/} == "js" ]; then 1686e7c69efSopenharmony_ci echo "js npm install" 1696e7c69efSopenharmony_ci cd ${target_path}/${z##*/}/build-tools/ace-loader 1706e7c69efSopenharmony_ci npm install > /dev/null 2>&1 1716e7c69efSopenharmony_ci fi 1726e7c69efSopenharmony_ci 1736e7c69efSopenharmony_cidone 1746e7c69efSopenharmony_cirm -rf ${TEMP_SDK_PAK} 1756e7c69efSopenharmony_ci 1766e7c69efSopenharmony_ciecho "sdk undate success.." 1776e7c69efSopenharmony_ciexit 0 178