diff --git a/mige.sh b/mige.sh index 5d25c75..15794e6 100755 --- a/mige.sh +++ b/mige.sh @@ -10,10 +10,10 @@ SOURCEDIR=$( dirname -- $BASH_SOURCE ) OPTION_ASSETS=false check_files () { - if [ ! -f "$SOURCEDIR/$TEMPLATE_HEADER" ]; then echo "Header template '$TEMPLATE_HEADER' doesn't exist."; exit 2; fi - if [ ! -f "$SOURCEDIR/$TEMPLATE_FOOTER" ]; then echo "Header template '$TEMPLATE_FOOTER' doesn't exist."; exit 2; fi - if [ ! -d "$SOURCEDIR/$DIR_CONTENT" ]; then echo "Content directory '$DIR_CONTENT' doesn't exist. Create it and add some content!"; exit 2; fi - if [ ! -d "$SOURCEDIR/$DIR_DIST" ]; then mkdir "$SOURCEDIR/$DIR_DIST"; echo "Directory '$DIR_DIST' created."; fi + if [ ! -f "$SOURCEDIR/$TEMPLATE_HEADER" ]; then echo "Header template '$TEMPLATE_HEADER' doesn't exist."; exit 2; fi + if [ ! -f "$SOURCEDIR/$TEMPLATE_FOOTER" ]; then echo "Header template '$TEMPLATE_FOOTER' doesn't exist."; exit 2; fi + if [ ! -d "$SOURCEDIR/$DIR_CONTENT" ]; then echo "Content directory '$DIR_CONTENT' doesn't exist. Create it and add some content!"; exit 2; fi + if [ ! -d "$SOURCEDIR/$DIR_DIST" ]; then mkdir "$SOURCEDIR/$DIR_DIST"; echo "Directory '$DIR_DIST' created."; fi if [[ $OPTION_ASSETS == true && ! -s "$SOURCEDIR/$DIR_ASSETS" ]]; then echo "Directory '$DIR_ASSETS' doesn't exist. Create it and add some assets!"; exit 2; fi } @@ -27,23 +27,23 @@ read_options() { } process_file () { - local timep=$(date +%s%N) + local timep=$(date +%s%N) - mkdir -p $( dirname "$1" | sed "s/$SOURCEDIR\/$DIR_CONTENT/$SOURCEDIR\/$DIR_DIST/" ) - local file_output=$( echo "$1" | sed "s/$SOURCEDIR\/$DIR_CONTENT/$SOURCEDIR\/$DIR_DIST/" ) - cat "$SOURCEDIR/$TEMPLATE_HEADER" "$1" "$SOURCEDIR/$TEMPLATE_FOOTER" > $file_output - while read -r variable; do - if [[ $variable =~ ^([0-9]+)=(.+)$ ]]; then - local variable_name=${BASH_REMATCH[1]} - local variable_value=${BASH_REMATCH[2]} - sed -i "s/\$$variable_name/$variable_value/g;/$variable/d" $file_output - else - echo -e "\e[38;5;208mWarning: could not match '$variable' as a variable assignment.\e[0m" - fi - done < <(grep -P '^\d+=.+$' $1) + mkdir -p $( dirname "$1" | sed "s/$SOURCEDIR\/$DIR_CONTENT/$SOURCEDIR\/$DIR_DIST/" ) + local file_output=$( echo "$1" | sed "s/$SOURCEDIR\/$DIR_CONTENT/$SOURCEDIR\/$DIR_DIST/" ) + cat "$SOURCEDIR/$TEMPLATE_HEADER" "$1" "$SOURCEDIR/$TEMPLATE_FOOTER" > $file_output + while read -r variable; do + if [[ $variable =~ ^([0-9]+)=(.+)$ ]]; then + local variable_name=${BASH_REMATCH[1]} + local variable_value=${BASH_REMATCH[2]} + sed -i "s/\$$variable_name/$variable_value/g;/$variable/d" $file_output + else + echo -e "\e[38;5;208mWarning: could not match '$variable' as a variable assignment.\e[0m" + fi + done < <(grep -P '^\d+=.+$' $1) - timep=$((($(date +%s%N) - $timep)/1000000)) - echo -e "\e[32mFile $1 processed to $file_output ($timep ms).\e[0m" + timep=$((($(date +%s%N) - $timep)/1000000)) + echo -e "\e[32mFile $1 processed to $file_output ($timep ms).\e[0m" } process_assets () { @@ -55,9 +55,9 @@ process_assets () { } main () { - while IFS= read -d '' file_content; do - process_file "${file_content}"