56 lines
1.7 KiB
Bash
Executable File
56 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script processes a given repository by replacing its node_modules with the ones from the dist folder.
|
|
# The dist folder is expected to contain the base folder name of the repository, then inside that will be sliced dependencies.
|
|
# Usage: ./script-placer.sh <repo_location>
|
|
set -x
|
|
fail() {
|
|
echo "Error: $1"
|
|
exit "${2-1}" ## Return a code specified by $2, or 1 by default.
|
|
}
|
|
|
|
REPO_FOLDER="$1"
|
|
REPO_BASE=$(basename "$REPO_FOLDER")
|
|
if [[ -z "$REPO_FOLDER" ]]; then
|
|
echo "Usage: $0 <repo_location>"
|
|
exit 1
|
|
fi
|
|
|
|
pushd "$REPO_FOLDER"
|
|
npm i || fail "Failed to install dependencies"
|
|
rm -rf .node_modules node_modules_2
|
|
npm run test >> ../coverage/$REPO_BASE-pre.json
|
|
# less ../coverage/$REPO_BASE-pre.json
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "Tests failed in $REPO_FOLDER"
|
|
echo "$REPO_FOLDER" >> ../coverage/pre-failed.txt
|
|
fi
|
|
popd
|
|
|
|
|
|
echo "Processing repository at: $REPO_FOLDER"
|
|
|
|
node src/index.mjs "$REPO_FOLDER"
|
|
PRE_TEST_RESULT=$?
|
|
if [[ $PRE_TEST_RESULT -ne 0 ]]; then
|
|
fail "Error processing repository: $REPO_FOLDER"
|
|
fi
|
|
|
|
pushd "$REPO_FOLDER"
|
|
mv node_modules .node_modules
|
|
NODE_PATH="/home/atreyab/Documents/Docs/SlicingImport/repos-js/safeImport/dist/$REPO_BASE:/home/atreyab/Documents/Docs/SlicingImport/repos-js/candidates-repos/$REPO_BASE/.node_modules" npm run test #>> ../coverage/$REPO_BASE-post.txt
|
|
# less ../coverage/$REPO_BASE-post.txt
|
|
POST_TEST_RESULT=$?
|
|
# if post test is true, or both are false, then we can proceed
|
|
if [[ $POST_TEST_RESULT -ne 0 && $PRE_TEST_RESULT -ne 0 ]]; then
|
|
echo "something"
|
|
echo $REPO_FOLDER >> ../coverage/failed.txt
|
|
# exit 1
|
|
fi
|
|
if [[ $POST_TEST_RESULT -eq 0 ]]; then
|
|
echo "$REPO_BASE" >> ../coverage/success.txt
|
|
echo "Successfully processed $REPO_BASE"
|
|
fi
|
|
popd
|
|
|