From 9be3a9c1f09448652e7b91e6722968ac79f5aa4d Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <calcurse@cryptocrack.de>
Date: Fri, 1 Jun 2012 14:14:19 +0200
Subject: scripts/: Add support for placeholders

Allow for specifying placeholders in shell scripts that are replaced
during build time. Predefine a "@PACKAGE_VERSION@" placeholder that is
replaced with the current version number. Also, rename all shell scripts
to ".sh.in".

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
---
 scripts/Makefile.am            |  12 ++-
 scripts/calcurse-upgrade.sh    | 170 -----------------------------------------
 scripts/calcurse-upgrade.sh.in | 170 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 179 insertions(+), 173 deletions(-)
 delete mode 100644 scripts/calcurse-upgrade.sh
 create mode 100644 scripts/calcurse-upgrade.sh.in

(limited to 'scripts')

diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 5502cfd..fc0b83b 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -4,10 +4,16 @@ dist_bin_SCRIPTS = \
 	calcurse-upgrade
 
 EXTRA_DIST = \
-	calcurse-upgrade.sh
+	calcurse-upgrade.sh.in
 
 CLEANFILES = \
 	calcurse-upgrade
 
-calcurse-upgrade: calcurse-upgrade.sh
-	$(AM_V_GEN) $(INSTALL) $< $@
+edit = sed \
+	-e 's|@PACKAGE_VERSION[@]|$(PACKAGE_VERSION)|g'
+
+calcurse-upgrade: calcurse-upgrade.sh.in
+	$(AM_V_at)$(RM) "$@"
+	$(AM_V_GEN)$(edit) <"$(srcdir)/$<" >"$@"
+	$(AM_V_at)chmod +x "$@"
+	$(AM_V_at)chmod a-w "$@"
diff --git a/scripts/calcurse-upgrade.sh b/scripts/calcurse-upgrade.sh
deleted file mode 100644
index bf3f92e..0000000
--- a/scripts/calcurse-upgrade.sh
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/bin/sh
-
-export TEXTDOMAIN='calcurse'
-
-set -e
-
-CONFFILE=$HOME/.calcurse/conf
-
-if [ "$#" -gt 0 ]; then
-  if [ "$1" = "--config" ]; then
-    CONFFILE=$2
-  else
-    echo "$(gettext "unrecognized option:") \"$1\"" >&2
-    exit 1
-  fi
-fi
-
-if [ ! -e "$CONFFILE" ]; then
-  echo "$(gettext "Configuration file not found:") $CONFFILE" >&2
-  exit 1
-fi
-
-if grep -q -e '^auto_save=' -e '^auto_gc=' -e '^periodic_save=' \
-  -e '^confirm_quit=' -e '^confirm_delete=' -e '^skip_system_dialogs=' \
-  -e '^skip_progress_bar=' -e '^calendar_default_view=' \
-  -e '^week_begins_on_monday=' -e '^color-theme=' -e '^layout=' \
-  -e '^side-bar_width=' -e '^notify-bar_show=' -e '^notify-bar_date=' \
-  -e '^notify-bar_clock=' -e '^notify-bar_warning=' -e '^notify-bar_command=' \
-  -e '^notify-all=' -e '^output_datefmt=' -e '^input_datefmt=' \
-  -e '^notify-daemon_enable=' -e '^notify-daemon_log=' "$CONFFILE"; then
-
-  echo "$(gettext "Pre-3.0.0 configuration file format detected...")"
-
-  tmpfile="${TMPDIR:-/tmp}/calcurse-upgrade.$!"
-  [ -e "$tmpfile" ] && exit 1
-
-  echo -n "$(gettext "Upgrade configuration directives...")"
-
-  sed -e 's/^auto_save=/general.autosave=/' \
-    -e 's/^auto_gc=/general.autogc=/' \
-    -e 's/^periodic_save=/general.periodicsave=/' \
-    -e 's/^confirm_quit=/general.confirmquit=/' \
-    -e 's/^confirm_delete=/general.confirmdelete=/' \
-    -e 's/^skip_system_dialogs=/general.systemdialogs=/' \
-    -e 's/^skip_progress_bar=/general.progressbar=/' \
-    -e 's/^calendar_default_view=/appearance.calendarview=/' \
-    -e 's/^week_begins_on_monday=/general.firstdayofweek=/' \
-    -e 's/^color-theme=/appearance.theme=/' \
-    -e 's/^layout=/appearance.layout=/' \
-    -e 's/^side-bar_width=/appearance.sidebarwidth=/' \
-    -e 's/^notify-bar_show=/appearance.notifybar=/' \
-    -e 's/^notify-bar_date=/format.notifydate=/' \
-    -e 's/^notify-bar_clock=/format.notifytime=/' \
-    -e 's/^notify-bar_warning=/notification.warning=/' \
-    -e 's/^notify-bar_command=/notification.command=/' \
-    -e 's/^notify-all=/notification.notifyall=/' \
-    -e 's/^output_datefmt=/format.outputdate=/' \
-    -e 's/^input_datefmt=/format.inputdate=/' \
-    -e 's/^notify-daemon_enable=/daemon.enable=/' \
-    -e 's/^notify-daemon_log=/daemon.log=/' "$CONFFILE" > "$tmpfile"
-  mv "$tmpfile" "$CONFFILE"
-
-  if grep -q -e '^[^#=][^#=]*$' -e '^[^#=][^#=]*#.*$' "$CONFFILE"; then
-    sed '
-      /^general.autosave=/{
-        N
-        s/\n//
-      }
-      /^general.autogc=/{
-        N
-        s/\n//
-      }
-      /^general.periodicsave=/{
-        N
-        s/\n//
-      }
-      /^general.confirmquit=/{
-        N
-        s/\n//
-      }
-      /^general.confirmdelete=/{
-        N
-        s/\n//
-      }
-      /^general.systemdialogs=/{
-        N
-        s/\n//
-      }
-      /^general.progressbar=/{
-        N
-        s/\n//
-      }
-      /^appearance.calendarview=/{
-        N
-        s/\n//
-      }
-      /^general.firstdayofweek=/{
-        N
-        s/\n//
-      }
-      /^appearance.theme=/{
-        N
-        s/\n//
-      }
-      /^appearance.layout=/{
-        N
-        s/\n//
-      }
-      /^appearance.sidebarwidth=/{
-        N
-        s/\n//
-      }
-      /^appearance.notifybar=/{
-        N
-        s/\n//
-      }
-      /^format.notifydate=/{
-        N
-        s/\n//
-      }
-      /^format.notifytime=/{
-        N
-        s/\n//
-      }
-      /^notification.warning=/{
-        N
-        s/\n//
-      }
-      /^notification.command=/{
-        N
-        s/\n//
-      }
-      /^notification.notifyall=/{
-        N
-        s/\n//
-      }
-      /^format.outputdate=/{
-        N
-        s/\n//
-      }
-      /^format.inputdate=/{
-        N
-        s/\n//
-      }
-      /^daemon.enable=/{
-        N
-        s/\n//
-      }
-      /^daemon.log=/{
-        N
-        s/\n//
-      }' "$CONFFILE" > "$tmpfile"
-    mv "$tmpfile" "$CONFFILE"
-  fi
-
-  awk '
-  BEGIN { FS=OFS="=" }
-  $1 == "general.systemdialogs" || $1 == "general.progressbar" \
-    { $2 = ($2 == "yes") ? "no" : "yes" }
-  $1 == "general.firstdayofweek" { $2 = ($2 == "yes") ? "monday" : "sunday" }
-  $1 == "appearance.calendarview" { $2 = ($2 == 0) ? "monthly" : \
-                                         ($2 == 1) ? "weekly"  : $2 }
-  { print }
-  ' < "$CONFFILE" > "$tmpfile"
-  mv "$tmpfile" "$CONFFILE"
-
-  echo -n ' '
-  echo "$(gettext 'done')"
-fi
-
diff --git a/scripts/calcurse-upgrade.sh.in b/scripts/calcurse-upgrade.sh.in
new file mode 100644
index 0000000..bf3f92e
--- /dev/null
+++ b/scripts/calcurse-upgrade.sh.in
@@ -0,0 +1,170 @@
+#!/bin/sh
+
+export TEXTDOMAIN='calcurse'
+
+set -e
+
+CONFFILE=$HOME/.calcurse/conf
+
+if [ "$#" -gt 0 ]; then
+  if [ "$1" = "--config" ]; then
+    CONFFILE=$2
+  else
+    echo "$(gettext "unrecognized option:") \"$1\"" >&2
+    exit 1
+  fi
+fi
+
+if [ ! -e "$CONFFILE" ]; then
+  echo "$(gettext "Configuration file not found:") $CONFFILE" >&2
+  exit 1
+fi
+
+if grep -q -e '^auto_save=' -e '^auto_gc=' -e '^periodic_save=' \
+  -e '^confirm_quit=' -e '^confirm_delete=' -e '^skip_system_dialogs=' \
+  -e '^skip_progress_bar=' -e '^calendar_default_view=' \
+  -e '^week_begins_on_monday=' -e '^color-theme=' -e '^layout=' \
+  -e '^side-bar_width=' -e '^notify-bar_show=' -e '^notify-bar_date=' \
+  -e '^notify-bar_clock=' -e '^notify-bar_warning=' -e '^notify-bar_command=' \
+  -e '^notify-all=' -e '^output_datefmt=' -e '^input_datefmt=' \
+  -e '^notify-daemon_enable=' -e '^notify-daemon_log=' "$CONFFILE"; then
+
+  echo "$(gettext "Pre-3.0.0 configuration file format detected...")"
+
+  tmpfile="${TMPDIR:-/tmp}/calcurse-upgrade.$!"
+  [ -e "$tmpfile" ] && exit 1
+
+  echo -n "$(gettext "Upgrade configuration directives...")"
+
+  sed -e 's/^auto_save=/general.autosave=/' \
+    -e 's/^auto_gc=/general.autogc=/' \
+    -e 's/^periodic_save=/general.periodicsave=/' \
+    -e 's/^confirm_quit=/general.confirmquit=/' \
+    -e 's/^confirm_delete=/general.confirmdelete=/' \
+    -e 's/^skip_system_dialogs=/general.systemdialogs=/' \
+    -e 's/^skip_progress_bar=/general.progressbar=/' \
+    -e 's/^calendar_default_view=/appearance.calendarview=/' \
+    -e 's/^week_begins_on_monday=/general.firstdayofweek=/' \
+    -e 's/^color-theme=/appearance.theme=/' \
+    -e 's/^layout=/appearance.layout=/' \
+    -e 's/^side-bar_width=/appearance.sidebarwidth=/' \
+    -e 's/^notify-bar_show=/appearance.notifybar=/' \
+    -e 's/^notify-bar_date=/format.notifydate=/' \
+    -e 's/^notify-bar_clock=/format.notifytime=/' \
+    -e 's/^notify-bar_warning=/notification.warning=/' \
+    -e 's/^notify-bar_command=/notification.command=/' \
+    -e 's/^notify-all=/notification.notifyall=/' \
+    -e 's/^output_datefmt=/format.outputdate=/' \
+    -e 's/^input_datefmt=/format.inputdate=/' \
+    -e 's/^notify-daemon_enable=/daemon.enable=/' \
+    -e 's/^notify-daemon_log=/daemon.log=/' "$CONFFILE" > "$tmpfile"
+  mv "$tmpfile" "$CONFFILE"
+
+  if grep -q -e '^[^#=][^#=]*$' -e '^[^#=][^#=]*#.*$' "$CONFFILE"; then
+    sed '
+      /^general.autosave=/{
+        N
+        s/\n//
+      }
+      /^general.autogc=/{
+        N
+        s/\n//
+      }
+      /^general.periodicsave=/{
+        N
+        s/\n//
+      }
+      /^general.confirmquit=/{
+        N
+        s/\n//
+      }
+      /^general.confirmdelete=/{
+        N
+        s/\n//
+      }
+      /^general.systemdialogs=/{
+        N
+        s/\n//
+      }
+      /^general.progressbar=/{
+        N
+        s/\n//
+      }
+      /^appearance.calendarview=/{
+        N
+        s/\n//
+      }
+      /^general.firstdayofweek=/{
+        N
+        s/\n//
+      }
+      /^appearance.theme=/{
+        N
+        s/\n//
+      }
+      /^appearance.layout=/{
+        N
+        s/\n//
+      }
+      /^appearance.sidebarwidth=/{
+        N
+        s/\n//
+      }
+      /^appearance.notifybar=/{
+        N
+        s/\n//
+      }
+      /^format.notifydate=/{
+        N
+        s/\n//
+      }
+      /^format.notifytime=/{
+        N
+        s/\n//
+      }
+      /^notification.warning=/{
+        N
+        s/\n//
+      }
+      /^notification.command=/{
+        N
+        s/\n//
+      }
+      /^notification.notifyall=/{
+        N
+        s/\n//
+      }
+      /^format.outputdate=/{
+        N
+        s/\n//
+      }
+      /^format.inputdate=/{
+        N
+        s/\n//
+      }
+      /^daemon.enable=/{
+        N
+        s/\n//
+      }
+      /^daemon.log=/{
+        N
+        s/\n//
+      }' "$CONFFILE" > "$tmpfile"
+    mv "$tmpfile" "$CONFFILE"
+  fi
+
+  awk '
+  BEGIN { FS=OFS="=" }
+  $1 == "general.systemdialogs" || $1 == "general.progressbar" \
+    { $2 = ($2 == "yes") ? "no" : "yes" }
+  $1 == "general.firstdayofweek" { $2 = ($2 == "yes") ? "monday" : "sunday" }
+  $1 == "appearance.calendarview" { $2 = ($2 == 0) ? "monthly" : \
+                                         ($2 == 1) ? "weekly"  : $2 }
+  { print }
+  ' < "$CONFFILE" > "$tmpfile"
+  mv "$tmpfile" "$CONFFILE"
+
+  echo -n ' '
+  echo "$(gettext 'done')"
+fi
+
-- 
cgit v1.2.3-70-g09d2