summaryrefslogtreecommitdiffstats
path: root/febootstrap-install.sh
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2009-05-11 14:51:22 +0100
committerRichard Jones <rjones@redhat.com>2009-05-11 15:41:41 +0100
commitd52fcf7521b8f9b1ec7bbeaaf93840af37d363cf (patch)
tree2e40039898704b34c73c42fa02b27a043ec0fe60 /febootstrap-install.sh
parente8d2809e31c5f4c937dc98239118855b2d1d006e (diff)
downloadfebootstrap-d52fcf7521b8f9b1ec7bbeaaf93840af37d363cf.tar.gz
febootstrap-d52fcf7521b8f9b1ec7bbeaaf93840af37d363cf.tar.xz
febootstrap-d52fcf7521b8f9b1ec7bbeaaf93840af37d363cf.zip
Be more careful about removing files in fakeroot during minimization.
Added febootstrap-install program.
Diffstat (limited to 'febootstrap-install.sh')
-rwxr-xr-xfebootstrap-install.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/febootstrap-install.sh b/febootstrap-install.sh
new file mode 100755
index 0000000..76b99b7
--- /dev/null
+++ b/febootstrap-install.sh
@@ -0,0 +1,45 @@
+#!/bin/bash -
+# febootstrap-install
+# (C) Copyright 2009 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# Written by Richard W.M. Jones <rjones@redhat.com>
+
+unset CDPATH
+
+usage ()
+{
+ echo "Usage: febootstrap-install ROOT LOCALFILE TARGETPATH MODE OWNER[.GROUP]"
+ echo "Please read febootstrap-install(8) man page for more information."
+}
+
+if [ $# != 5 ]; then
+ usage
+ exit 1
+fi
+
+set -e
+
+# This is a carefully chosen sequence of commands which
+# tries not to disturb any inode numbers apart from the
+# one for the new file.
+cp "$2" "$1"/"$3"
+ino=$(ls -i "$1"/"$3" | awk '{print $1}')
+cp "$1"/fakeroot.log "$1"/fakeroot.log.old
+grep -v "ino=$ino," "$1"/fakeroot.log.old > "$1"/fakeroot.log
+rm "$1"/fakeroot.log.old
+febootstrap-run "$1" -- chmod "$4" "$3"
+febootstrap-run "$1" -- chown "$5" "$3"