diff --git a/scripts/license_manager.sh b/scripts/license_manager.sh index ee81a37e280949b3337442fcd12f1ad18ae8ac24..74f790a95133bb09f07b016ed55c3a7b67e2a9bc 100755 --- a/scripts/license_manager.sh +++ b/scripts/license_manager.sh @@ -12,6 +12,7 @@ line_end_mark="//--------LICENSE_END--------" tmp=false mode="none" path="" +exclude_folder="" #recursive=true license="" @@ -45,6 +46,10 @@ for i in "$@"; do fi shift # past argument=value ;; + --exclude=*) + exclude_folder="${i#*=}" + shift # past argument=value + ;; *) # unknown option ;; @@ -77,11 +82,19 @@ else fi fi -echo "mode: ${mode}" +if [ "$exclude_folder" == "" ]; then + echo "No folders will be excluded" +else + if [ -d "${path}/${exclude_folder}" ]; then + echo "Valid remove folder path: ${path}/${exclude_folder}" + fi +fi if [ $mode == "none" ]; then echo "Error: Script should be called with one of the following options: --update or --add" exit 1 +else + echo "mode: ${mode}" fi # PATH (AND tmp FOLDER) @@ -93,10 +106,17 @@ if [ $tmp == true ]; then folder=${path}_tmp fi +# LIST OF FILES TO BE ITERATED ON +if [ "$exclude_folder" == "" ]; then + file_list=$(find $folder -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.hpp') +else + file_list=$(find $folder -path ${folder}/${exclude_folder} -prune -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.hpp') +fi + # DETECT AND REMOVE EXISTING LICENSE -if [ $mode == "update" ]; then +if [ "$mode" == "update" ]; then echo "Recursely removing license header from all files (.c, .cpp, .h, .hpp)" - for i in $(find $folder -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.hpp') + for i in $file_list do if grep -Fxq ${line_start_mark} $i then @@ -113,7 +133,7 @@ fi # ADD CONTENT OF license-file AT THE BEGINNING OF CODE FILES echo "Recursively adding license header to all files (.c, .cpp, .h, .hpp)" -for i in $(find $folder -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.hpp') +for i in $file_list do if grep -Fxq ${line_start_mark} $i; then echo "skippping ${i}"