-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathextract
executable file
·58 lines (47 loc) · 1.21 KB
/
extract
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash -eo pipefail
USAGE="USAGE: extract <module name> <target folder>"
RED='\033[1;31m'
GREEN='\033[1;32m'
RESET='\033[0m' # No Color
printError() {
echo -e "${RED}$@${RESET}"
}
printGreen()
{
echo -e "${GREEN}$@${RESET}"
}
if [ $# -ne 2 ];then
printError $USAGE
exit 1
fi
FOLDER_NAME=$1
CODE_ZIP_FILE=${FOLDER_NAME}.zip
TARGET_FOLDER=$2
# Test if code folder exists
if [ ! -d $FOLDER_NAME ];then
printError "No code found for $FOLDER_NAME"
exit 1
fi
# Test if target folder exists
if [ ! -d $TARGET_FOLDER ];then
printError "No such folder: $TARGET_FOLDER"
exit 1
fi
TMP_FOLDER=$(mktemp -d)
cp -r $FOLDER_NAME $TMP_FOLDER
(
cd $TMP_FOLDER
find ${FOLDER_NAME} -name target -o \
-name .bloop -o \
-name .bsp -o \
-name .metals -o \
-name .idea -o \
-name .vscode \
-type d | xargs rm -rf
find ${FOLDER_NAME} -name .DS_Store -type f | xargs rm -f
zip -r ${CODE_ZIP_FILE} ${FOLDER_NAME} 2>&1 > /dev/null
mv ${FOLDER_NAME}.zip ${TARGET_FOLDER}
)
printGreen "Extracted code for ${FOLDER_NAME} to ${TARGET_FOLDER}/${CODE_ZIP_FILE}"
# Clean-up
trap "rm -rf ${TMP_FOLDER}; exit 0" 0