From 069e68335ab88cb319071ff8fc432a6fecb7856b Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 14 Mar 2016 02:12:22 -0400 Subject: Initial commit --- (limited to '.displayinit') diff --git a/.displayinit b/.displayinit new file mode 100755 index 0000000..3e96b6c --- /dev/null +++ b/.displayinit @@ -0,0 +1,65 @@ +#!/bin/sh + +run_parts() +{ + local level="${1}" + local action="${2}" + local i= + + if [ "x${level}" = 'x' ]; then + level="${HOME}/.displayinit.d/" + else + level="${HOME}/.displayrc.d/${level}" + fi + for i in "${level}"*; do + if [ -x "${i}" ]; then + if ! "${i}" "${action}"; then + return 1 + fi + fi + done + + return 0 +} + +main() +{ + local action= + + if [ ${#} -ne 1 ]; then + usage >&2 + return 1 + fi + action="${1}" + + # Enable services on first run. + if ! [ -d "${HOME}/.displayrc.d" ]; then + mkdir "${HOME}/.displayrc.d" + if ! run_parts 'enable'; then + return 1 + fi + fi + + # Start the session. + if ! run_parts "${action}"; then + return 1 + fi + + # Main loop. + rm -f ~/.displayrc.fifo + mkfifo -m 0600 ~/.displayrc.fifo + while read action; do + case "${action}" in + 'reload') + run_parts "${action}" + ;; + 'stop') + run_parts "${action}" + break + ;; + esac + done <~/.displayrc.fifo + rm -f ~/.displayrc.fifo +} + +main "${@}" -- cgit v0.9.1