diff --git a/build.sh b/build.sh index 5b745e8..52f7a82 100755 --- a/build.sh +++ b/build.sh @@ -16,7 +16,8 @@ EOF fi if [ -f ${i}-packages-nr ]; then log "Begin ${SUB_STAGE_DIR}/${i}-packages-nr" - PACKAGES=`cat $i-packages-nr | tr '\n' ' '` + PACKAGES="$(sed -f "${SCRIPT_DIR}/remove-comments.sed" < ${i}-packages-nr)" + PACKAGES="$(sed -e "$sed_expr_packages" < ${i}-packages-nr)" if [ -n "$PACKAGES" ]; then on_chroot sh -e - << EOF apt-get install --no-install-recommends -y $PACKAGES @@ -26,7 +27,7 @@ EOF fi if [ -f ${i}-packages ]; then log "Begin ${SUB_STAGE_DIR}/${i}-packages" - PACKAGES=`cat $i-packages | tr '\n' ' '` + PACKAGES="$(sed -f "${SCRIPT_DIR}/remove-comments.sed" < ${i}-packages)" if [ -n "$PACKAGES" ]; then on_chroot sh -e - << EOF apt-get install -y $PACKAGES @@ -77,6 +78,7 @@ EOF log "End ${SUB_STAGE_DIR}" } + run_stage(){ log "Begin ${STAGE_DIR}" STAGE=$(basename ${STAGE_DIR}) diff --git a/scripts/remove-comments.sed b/scripts/remove-comments.sed new file mode 100644 index 0000000..2a6889f --- /dev/null +++ b/scripts/remove-comments.sed @@ -0,0 +1,11 @@ +# Deletes comments and collapses whitespace in ##-packages files + +# Append (N)ext line to buffer +# if (!)not ($)buffer is EOF, (b)ranch to (:)label loop +:loop +N +$ !b loop + +# Buffer is "line1\nline2\n...lineN", del comments and collapse whitespace +s/#[^\n]*//g +s/[[:space:]]\{1,\}/ /g