-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmultischemec.sh
executable file
·44 lines (41 loc) · 1.03 KB
/
multischemec.sh
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
#!/bin/bash
COMPILE=$0
OPTIONS="Options:
-h Print this message and exit.
-o The compiler output file."
usage () {
echo "Multischeme Compiler."
echo "Usage: ${COMPILE} <OPTIONS> (- | <SOURCE>)"
echo "${OPTIONS}"
}
SOURCE="-"
PARSED_ARGS=`getopt ho: -- $@`
if [ $? ]; then
for ARG in ${PARSED_ARGS}; do
if [[ -n "${PARSING_DESTINATION}" ]]; then
DESTINATION="${ARG}"
PARSING_DESTINATION=''
elif [[ "${ARG}" == "-o" ]]; then
PARSING_DESTINATION='Yes'
elif [[ "${ARG}" == "-h" ]]; then
usage
exit 0
elif [[ "${ARG}" != "--" ]]; then
SOURCE="${ARG}"
fi
done
else
usage
exit 1
fi
if [ ! -e 'bin/multischemec' ]; then ./bootstrap.sh; fi
if [[ "${SOURCE}" == "-" ]]; then
REWRITTEN_CODE=`bin/multischemec < /dev/stdin`
else
REWRITTEN_CODE=`bin/multischemec < ${SOURCE}`
fi
if [[ -n "${DESTINATION}" ]]; then
echo ${REWRITTEN_CODE} | csc - -o ${DESTINATION}
else
echo ${REWRITTEN_CODE} | csc -
fi