-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathboiler.sh
executable file
·63 lines (50 loc) · 1.39 KB
/
boiler.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
# bash script to generate C++ variable boiler plate code
CLASS_NAME=$1
VAR_NAME=$2
VAR_TYPE=$3
RED='\033[91;1m'
GRN='\033[92;1m'
YEL='\033[33m'
BLU='\033[94;1m'
MAG='\033[95;1m'
CYA='\033[96;1m'
RST='\033[0m'
printf "\e[33;1m--- Variables Boiler Plate Generator ---\e[0m\n\n"
while [[ -z "$CLASS_NAME" ]]; do
printf "Enter class name : "
read ans
CLASS_NAME=$ans
done
CLASS_NAME=$(tr '[:lower:]' '[:upper:]' <<<${CLASS_NAME:0:1})${CLASS_NAME:1}
while [[ -z "$VAR_NAME" ]]; do
printf "Enter variable name : "
read ans
VAR_NAME=$ans
done
while [[ -z "$VAR_TYPE" ]]; do
printf "Enter variable type : "
read ans
VAR_TYPE=$ans
done
printf "${GRN}+++ Boiler plate for ${CLASS_NAME}${RST}::${YEL}${VAR_NAME}${GRN} \
of type ${BLU}${VAR_TYPE}${GRN} +++${RST}\n\n"
FUNC_NAME=$(echo ${VAR_NAME} | sed 's/^_//')
printf "$(
cat <<EOF
${BLU}class ${GRN}${CLASS_NAME}${RST}
{
${BLU}${VAR_TYPE} ${GRN}${VAR_NAME}${RST};
${BLU}${VAR_TYPE} ${YEL}get_${FUNC_NAME}${RST}( ${BLU}void${RST} ) ${BLU}const${RST};
${BLU}void ${YEL}set_${FUNC_NAME}${RST}( ${BLU}${VAR_TYPE} ${CYA}input${RST} );
};
${BLU}${VAR_TYPE} ${GRN}${CLASS_NAME}::${YEL}get_${FUNC_NAME}${RST}( ${BLU}void${RST} ) ${BLU}const${RST}
{
${MAG}return ${CYA}${VAR_NAME}${RST};
}
${BLU}void ${GRN}${CLASS_NAME}::${YEL}set_${FUNC_NAME}${RST}( ${BLU}${VAR_TYPE} ${CYA}input${RST} );
{
${CYA}${VAR_NAME}${RST} = ${CYA}input${RST};
}
EOF
)\n"