• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env bash
2# Copyright (c) 2024 Huawei Device Co., Ltd.
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15set -e
16
17SANDBOX_DIR=$1
18IN_PATH=$2
19OUT_PATH=$3
20SOURCE_LANG=$4
21
22IN_DIR="$(dirname $IN_PATH)"
23IN_NAME=${IN_PATH##*/}
24IN_STEM=${IN_NAME%.*}
25IN_PATH_LOWERED=$(echo $IN_PATH | sed 's|[/\\ ]|_|g')
26
27TMP_FILE="$SANDBOX_DIR/$IN_PATH_LOWERED.txt"
28
29ACCEPTED_SOURCE_LANGS=("" "js" "ts" "ets")
30# CC-OFFNXT(bc-50007) can not put quotes to match regex
31if [[ ! "${ACCEPTED_SOURCE_LANGS[@]}" =~ $SOURCE_LANG ]]; then
32    echo "Unknown source language:" $SOURCE_LANG >&2
33    exit -1
34fi
35
36# CSV schema of merge file used by frontend:
37# $fileName;$recordName;$scriptKind;$sourceFile;$pkgName;$IsSharedModule;$OriginSourceLang
38
39echo "$IN_NAME;$IN_STEM;esm;$IN_NAME;entry;false;$SOURCE_LANG" >$TMP_FILE
40MODULES_DIR="$IN_DIR/modules"
41if [ -d "$MODULES_DIR" ]; then
42    for file in $MODULES_DIR/*; do
43        MOD_NAME="modules/${file##*/}"
44        MOD_STEM=${MOD_NAME%.*}
45        echo "$MOD_NAME;$MOD_STEM;esm;$MOD_NAME;entry;false;$SOURCE_LANG" >>$TMP_FILE
46    done
47fi
48
49/usr/bin/python3 \
50    "$(dirname $0)/../../../ets_runtime/test/quickfix/generate_merge_file.py" \
51    --input "$TMP_FILE" --output "$OUT_PATH" --prefix "$IN_DIR/"
52