diff --git a/daemons/ensure-dirs.in b/daemons/ensure-dirs.in index aed690a13e2f34668e5b7f4c4329bae5cfeb7fae..252f24af8fc877e3ba466fc8a4720a96a67fa6ca 100644 --- a/daemons/ensure-dirs.in +++ b/daemons/ensure-dirs.in @@ -74,6 +74,8 @@ _gather_files() { } _ensure_datadir() { + local full_run="$1" + _ensure_dir ${DATADIR} 0755 "$(_fileset_owner masterd)" _ensure_dir ${DATADIR}/queue 0700 "$(_fileset_owner masterd)" _ensure_dir ${DATADIR}/queue/archive 0700 "$(_fileset_owner masterd)" @@ -94,15 +96,17 @@ _ensure_datadir() { touch ${DATADIR}/queue/lock _ensure_file ${DATADIR}/queue/lock 0600 "$(_fileset_owner masterd)" - for file in $(_gather_files ${DATADIR}/queue 0600 @GNTMASTERUSER@ \ - @GNTMASTERDGROUP@); do - _ensure_file "${file}" 0600 "$(_fileset_owner masterd)" - done + if ! [[ -z "${full_run}" ]]; then + for file in $(_gather_files ${DATADIR}/queue 0600 @GNTMASTERUSER@ \ + @GNTMASTERDGROUP@); do + _ensure_file "${file}" 0600 "$(_fileset_owner masterd)" + done - for file in $(_gather_files ${DATADIR} 0600 root \ - @GNTMASTERDGROUP@ -name 'ssconf_*'); do - _ensure_file "${file}" 0444 "$(_fileset_owner noded)" - done + for file in $(_gather_files ${DATADIR} 0600 root \ + @GNTMASTERDGROUP@ -name 'ssconf_*'); do + _ensure_file "${file}" 0444 "$(_fileset_owner noded)" + done + fi } _ensure_rundir() { @@ -143,7 +147,15 @@ _operate_while_hold() { } main() { - _operate_while_hold "_ensure_datadir" ${DATADIR} + local full_run + + while getopts "f" OPTION; do + case ${OPTION} in + f) full_run=1 ;; + esac + done + + _operate_while_hold "_ensure_datadir" ${DATADIR} ${full_run} _operate_while_hold "_ensure_rundir" ${RUNDIR} _operate_while_hold "_ensure_logdir" ${LOGDIR} _operate_while_hold "_ensure_lockdir" @LOCALSTATEDIR@