--new-project
This commit is contained in:
parent
0ebc1c47ee
commit
fc833508b8
15
.gitignore
vendored
15
.gitignore
vendored
@ -1,8 +1,6 @@
|
||||
# build results
|
||||
bin/
|
||||
obj/
|
||||
*.log
|
||||
*.tmp
|
||||
|
||||
# IDE files
|
||||
.vs/
|
||||
@ -11,6 +9,17 @@ obj/
|
||||
*.user
|
||||
*.vcxproj.filters
|
||||
|
||||
# local cbuild config giles
|
||||
current.config
|
||||
*.current.config
|
||||
|
||||
# other files
|
||||
.old*/
|
||||
current.config
|
||||
old/
|
||||
tmp/
|
||||
temp/
|
||||
*.tmp
|
||||
*.temp
|
||||
logs/
|
||||
log/
|
||||
*.log
|
||||
|
||||
@ -1,3 +1,9 @@
|
||||
# HEAD
|
||||
+ fixed bugs in `myprint.sh`
|
||||
+ fixed bugs in `--new-project`
|
||||
+ updated `.gitignore`
|
||||
+ added `pwd` call to `valgrind` task in config
|
||||
|
||||
# 2.0.0
|
||||
+ updated setup.sh to do system-wide installation
|
||||
+ deleted makefile (call `./cbuild.sh` or installed `cbuild`)
|
||||
|
||||
25
cbuild.sh
25
cbuild.sh
@ -30,7 +30,7 @@ include "cbuild/myprint.sh"
|
||||
include "cbuild/functions.sh"
|
||||
include "cbuild/config.sh"
|
||||
|
||||
function print_help_and_exit {
|
||||
function print_help {
|
||||
myprint "cbuild v$INSTALLED_CBUILD_VERSION"
|
||||
myprint "C/C++ project build system written in bash."
|
||||
myprint "Usage: cbuild [OPTIONS] [TASK]"
|
||||
@ -39,17 +39,16 @@ function print_help_and_exit {
|
||||
myprint " -n, --new-project [PROJ_DIR] Initialize new cbuild project directory (default=./)"
|
||||
myprint " -c, --current-config FILE Set current config file path (default=./current.config)"
|
||||
myprint " -d, --default-config FILE Set default config file path (default=./current.config)"
|
||||
exit 0
|
||||
}
|
||||
|
||||
current_config_path="./current.config"
|
||||
default_config_path="./default.config"
|
||||
args=($@)
|
||||
args_len=${#args[@]}
|
||||
args_count=${#args[@]}
|
||||
selected_tasks_array=()
|
||||
i=0
|
||||
if [ $args_len -eq 0 ]; then
|
||||
print_help_and_exit
|
||||
if [ $args_count -eq 0 ]; then
|
||||
print_help
|
||||
fi
|
||||
|
||||
function get_next_arg {
|
||||
@ -57,15 +56,14 @@ function get_next_arg {
|
||||
safeprint "${args[i]}"
|
||||
}
|
||||
|
||||
while [ $i -lt $args_len ]
|
||||
while [ $i -lt $args_count ]
|
||||
do
|
||||
case "${args[i]}" in
|
||||
'-h' | '--help')
|
||||
print_help_and_exit
|
||||
print_help
|
||||
;;
|
||||
'-v' | '--version')
|
||||
myprint $INSTALLED_CBUILD_VERSION
|
||||
exit 0
|
||||
;;
|
||||
'-c' | '--current-config')
|
||||
i=$((i+1))
|
||||
@ -84,8 +82,9 @@ do
|
||||
|
||||
if ask_yn "create default.config?"; then
|
||||
cp "$CBUILD_INSTALL_DIR/default.config" "$new_project_dir"
|
||||
project_name="$(ask 'Enter project name')"
|
||||
sed -i "s,\%PROJECT_NAME\%,$project_name,g"
|
||||
myprint "Enter project name: "
|
||||
read -r project_name
|
||||
sed -i "s,\%PROJECT_NAME\%,$project_name,g" "default.config"
|
||||
fi
|
||||
if ask_yn "Copy default .gitignore?"; then
|
||||
cp "$CBUILD_INSTALL_DIR/.gitignore" "$new_project_dir"
|
||||
@ -129,7 +128,12 @@ function call_tasks {
|
||||
print_hline "${WHITE}" "═"
|
||||
}
|
||||
|
||||
selected_tasks_count=${#selected_tasks_array[@]}
|
||||
if [ $selected_tasks_count -gt 0 ]; then
|
||||
time call_tasks "${selected_tasks_array[@]}" #2>&1 | tee cbuild.log
|
||||
fi
|
||||
|
||||
if [ -f cbuild.log ]; then
|
||||
# remove terminal escape codes
|
||||
sed -e 's/[^[:blank:][:print:]]//g' \
|
||||
-e 's/\[0;[0-9][0-9]m//g' \
|
||||
@ -139,3 +143,4 @@ sed -e 's/[^[:blank:][:print:]]//g' \
|
||||
-e 's/ H //g' \
|
||||
-e 's/\[3gH //g' \
|
||||
-i cbuild.log
|
||||
fi
|
||||
@ -116,7 +116,7 @@ case "$TASK" in
|
||||
;;
|
||||
# executes $EXEC_FILE with valgrind memory checker
|
||||
valgrind)
|
||||
VALGRIND_ARGS="-s --read-var-info=yes --track-origins=yes --fullpath-after=$PROJECT/ --leak-check=full --show-leak-kinds=all"
|
||||
VALGRIND_ARGS="-s --read-var-info=yes --track-origins=yes --fullpath-after=$(pwd)/ --leak-check=full --show-leak-kinds=all"
|
||||
TASK_SCRIPT=cbuild/default_tasks/valgrind.sh
|
||||
;;
|
||||
# generates profiling info
|
||||
|
||||
@ -36,14 +36,6 @@ function ask_yn {
|
||||
return $([[ "$answ" = [Yy] ]]);
|
||||
}
|
||||
|
||||
# asks a question and prints answer
|
||||
function ask {
|
||||
local answ=""
|
||||
myprint "$@: "
|
||||
read -r answ
|
||||
safeprint "$answ"
|
||||
}
|
||||
|
||||
# prints horizontal line occupying whole terminal row
|
||||
# https://en.wikipedia.org/wiki/Box-drawing_characters
|
||||
function print_hline {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user