diff --git a/firestarter b/firestarter index f2af349..2f4d5db 100755 --- a/firestarter +++ b/firestarter @@ -301,6 +301,12 @@ step_preexecute() { [ -n "$_optdryrun" ] && return 0 # Execute a user rc if it exists [ -r "$HOME/.firestarterrc" ] && . "$HOME/.firestarterrc" + # Ensure we have a log directory + if ! [ -d "$_optlogdir" ]; then + if ! mkdir -p "$_optlogdir" >/dev/null 2>&1; then + error "Failed to create log directory: \"$_optlogdir\"" 53 + fi + fi [ -n "$FIRESTARTER" ] && [ "$FIRESTARTER_DISPLAY" == "$DISPLAY" ] && error "Firestarter is already running on $DISPLAY: $FIRESTARTER" 55 export FIRESTARTER="$BASHPID" export FIRESTARTER_DISPLAY="$DISPLAY" @@ -400,22 +406,6 @@ step_preexecute() { xset s off -dpms fi } -step_execute() { - # Parse out our defaults lists and execute their targets - if ! [ -d "$_optlogdir" ]; then - if ! mkdir -p "$_optlogdir" >/dev/null 2>&1; then - error "Failed to create log directory: \"$_optlogdir\"" 53 - fi - fi - for file in "$_optconfigdir"/*; do - if ! [ -e "$file" ]; then - error "No configuration files found" 70 - fi - # Skip our logs directory - [ "$_optlogdir" == "$file" ] && continue - fsexec "$file" - done -} step_postexecute() { # Wait for the WM to initialize, if one was found and we have the tools if [ -z "$FS_NOWAITWM" ] && gettarget "$_optconfigdir/wm" && has xprop grep; then @@ -525,7 +515,14 @@ firestart() { init) [ -n "$_optdryrun" ] && log "Performing a dry run" step_preexecute - step_execute + for file in "$_optconfigdir"/*; do + if ! [ -e "$file" ]; then + error "No configuration files found" 70 + fi + # Skip our logs directory + [ "$_optlogdir" == "$file" ] && continue + fsexec "$file" + done step_wait step_logout ;;