[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] install-sh: Add a new -B option to backup files being overwritte
From: |
Julien ÉLIE |
Subject: |
[PATCH] install-sh: Add a new -B option to backup files being overwritten |
Date: |
Sat, 17 Mar 2018 15:16:40 +0100 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
Hi,
Here is a suggestion of patch we've been using for almost two decades with INN
(a news server).
https://inn.eyrie.org/trac/changeset/2777
--
Julien ÉLIE
Add a new "-B" option to request saving of the original file when install-sh
is overwriting an existing file.
"-B" takes an argument: the suffix to use.
Example of invokation: "install-sh -B .OLD".
* lib/install-sh: Add a new -B option to backup files being overwritten
--- install-sh.orig 2018-03-17 14:18:08.701045461 +0100
+++ install-sh.backupsuffix 2018-03-17 14:25:52.267384165 +0100
@@ -69,6 +69,7 @@
# Desired mode of installed file.
mode=0755
+backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
@@ -98,6 +99,7 @@
--help display this help and exit.
--version display version info and exit.
+ -B SUFFIX backup a file with the suffix SUFFIX.
-c (ignored)
-C install only if different (preserve the last data modification
time)
-d create directories instead of installing files.
@@ -115,6 +117,9 @@
while test $# -ne 0; do
case $1 in
+ -B) backupsuffix="$2"
+ shift;;
+
-c) ;;
-C) copy_on_change=true;;
@@ -477,6 +482,10 @@
then
rm -f "$dsttmp"
else
+ # If $backupsuffix is set, rename the existing file if it exists.
+ if [ x"$backupsuffix" != x ] && [ -f "$dst" ]; then
+ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+ fi
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] install-sh: Add a new -B option to backup files being overwritten,
Julien ÉLIE <=