]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - crontab.d/update.sh
Add rsleep script and use it in crontab.d/jobs.
[config/dotfiles.git] / crontab.d / update.sh
index 05519bb4a14b0b901bc58f585954673e670de73a..2b174c165a5437040044ff544b9034620e336dbd 100755 (executable)
@@ -29,10 +29,10 @@ HEADER_WARNING="# WARNING! DO NOT EDIT THIS FILE! #"
 # Don't overwrite existing crontab entries. Not race condition free but that
 # can't be helped.
 if crontab -l >/dev/null 2>&1; then
-    if crontab -l | head -n3 | grep "^$HEADER_WARNING$" >/dev/null; then
+    if crontab -l | head -n3 | grep -F -x "$HEADER_WARNING" >/dev/null; then
         :
     else
-        echo "Existing crontab entry found, please remove it manually."
+        echo 'Existing crontab entry found, please remove it manually.'
         exit 2
     fi
 fi
@@ -46,15 +46,15 @@ fi
 # `set -e` aborts when `mktemp` fails.
 CRONTAB=`mktemp --tmpdir="$DIRECTORY" update-crontab.XXXXXXXXXXXX`
 
-echo "###################################"  > "$CRONTAB"
-echo "$HEADER_WARNING"                     >> "$CRONTAB"
-echo "###################################" >> "$CRONTAB"
-echo >> "$CRONTAB"
-echo "# It was generated from '$DIRECTORY/*' on `date -R`." >> "$CRONTAB"
+echo '###################################'  >"$CRONTAB"
+echo "$HEADER_WARNING"                     >>"$CRONTAB"
+echo '###################################' >>"$CRONTAB"
+echo >>"$CRONTAB"
+printf "# It was generated from '%s/*' on %s." \
+    "$DIRECTORY" "`LANG=C date '+%a, %d %b %Y %H:%M:%S %z'`" >>"$CRONTAB"
 
-# Enforce C sort order ($LANGUAGE is a GNU extension).
+# Enforce C sort order.
 LC_ALL=C
-LANGUAGE=C
 
 NO_MATCHES=
 for file in "$DIRECTORY"/crontab.*; do
@@ -64,22 +64,20 @@ for file in "$DIRECTORY"/crontab.*; do
         break
     fi
 
-    echo "Found '$file'."
+    printf "Found '%s'.\n" "$file"
 
-    echo             >> "$CRONTAB"
-    echo             >> "$CRONTAB"
-    echo "## $file:" >> "$CRONTAB"
+    printf '\n\n## %s:\n' "$file" >>"$CRONTAB"
 
     # Strip licenses, multiple empty lines and fix $HOME variables in PATH
     # (cron doesn't expand variables).
     START_REGEX='^# This [a-zA-Z]* is free software: you can redistribute it'
     END_REGEX='^# along with this [a-zA-Z]*.  If not, see <[^>]*>\.'
-    < "$file" sed -e "/$START_REGEX/,/$END_REGEX/ d" \
-                  -e "/^#[ ]*$/ d" \
-                  -e "/^# Copyright (C) [0-9][0-9]* / d" \
+    <"$file" sed -e "/$START_REGEX/,/$END_REGEX/ d" \
+                 -e "/^#[ ]*$/ d" \
+                 -e "/^# Copyright (C) [0-9][0-9]* / d" \
         | cat --squeeze-blank \
         | sed "/^PATH/ s:\$HOME:$HOME:g" \
-        >> "$CRONTAB"
+        >>"$CRONTAB"
 done
 
 # Update crontab with the crontab.* files.