208 lines
5.5 KiB
Bash
208 lines
5.5 KiB
Bash
#!/bin/sh
|
|
|
|
export TEXTDOMAIN='calcurse'
|
|
|
|
set -e
|
|
|
|
[ -d "$HOME/.calcurse" ] && CONFFILE="$HOME/.calcurse/conf" || CONFFILE="${XDG_CONFIG_HOME:-$HOME/.config}/calcurse/conf"
|
|
|
|
if [ "$#" -gt 0 ]; then
|
|
if [ "$1" = "--config" ]; then
|
|
CONFFILE=$2
|
|
elif [ "$1" = "-h" -o "$1" = "--help" ]; then
|
|
echo "calcurse-upgrade @PACKAGE_VERSION@"
|
|
echo "$(gettext "Usage: calcurse-upgrade [-h|-v|--config <file>]")"
|
|
elif [ "$1" = "-v" -o "$1" = "--version" ]; then
|
|
echo "calcurse-upgrade @PACKAGE_VERSION@"
|
|
echo "$(gettext "
|
|
Copyright (c) 2004-2023 calcurse Development Team.
|
|
This is free software; see the source for copying conditions.
|
|
")"
|
|
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...")"
|
|
|
|
echo -n "$(gettext "Create temporary backup of the configuration file...")"
|
|
|
|
backupfile="$CONFFILE.calcurse-upgrade.old"
|
|
if [ -e "$backupfile" ]; then
|
|
echo
|
|
echo "$(gettext "Old backup file found:") \"$backupfile\"" >&2
|
|
echo "$(gettext "
|
|
If a previous conversion did not complete, please try to restore your
|
|
configuration from this backup and then remove the backup file.")" >&2
|
|
exit 1
|
|
fi
|
|
|
|
cp "$CONFFILE" "$backupfile"
|
|
|
|
echo -n ' '
|
|
echo "$(gettext 'done')"
|
|
|
|
tmpfile="$CONFFILE.calcurse-upgrade.tmp"
|
|
if [ -e "$tmpfile" ]; then
|
|
echo "$(gettext "Old temporary file found:") \"$tmpfile\"" >&2
|
|
echo "$(gettext "
|
|
If a previous conversion did not complete, please try to remove this file and
|
|
start over with a backup of your old configuration file.")" >&2
|
|
exit 1
|
|
fi
|
|
|
|
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')"
|
|
|
|
echo -n "$(gettext "Remove temporary backup...")"
|
|
rm "$backupfile"
|
|
echo -n ' '
|
|
echo "$(gettext 'done')"
|
|
fi
|
|
|