#!/bin/bash tab() { sed -e "s/^/$(printf %$1s)/" } not_empty() { sed -e "/^$/d" } define() { IFS='\n' read -r -d '' ${1} || true; } #ls -l | tab 10 define FILE_OPTS_COMMON <<'EOF' encoding: gzip+base64 owner: root:root permissions: '0644' EOF print_file() { CONTENT=$(cat $1 | gzip | base64) echo "- path: $2" cat <<<"$FILE_OPTS_COMMON" | not_empty | tab 2 echo " content: |" cat <<<"$CONTENT" | tab 4 echo " " } gen__write_files() { echo "write_files:" print_file src/srv1cv83@.service /etc/systemd/system/srv1cv83@.service | tab 2 print_file src/srv1cv83-ras@.service /etc/systemd/system/srv1cv83-ras@.service | tab 2 print_file src/apache-proxy /etc/nginx/sites-available/apache-proxy | tab 2 } pushd config >/dev/null 2>&1 gen__write_files | tab 4 popd >/dev/null 2>&1