tag 683837 patch

söndagen den 5 augusti 2012 00:10:16 skrev  Daniel Baumann:
> the problem with the patch is that it will not copy dotfiles in the root
> to the target, which is why i'm not copying ${root}/* but ${root}, on
> purpose.

Well, the cache don't contain any dotfiles, but I guess that for a generic 
solution it won't do to skip them nontheless. Thankfully, the solution is 
quite simple, just copy .../{.?*,*} instead of .../*. Updated patch attached.
--- /usr/share/lxc/templates/lxc-debconf.distrib	2012-08-04 14:46:16.000000000 +0200
+++ /usr/share/lxc/templates/lxc-debconf	2012-08-05 11:23:02.804091649 +0200
@@ -454,7 +454,8 @@
 	then
 		# system cache in the form of a directory
 		echo -n "Copying system cache to ${_ROOTFS}..."
-		cp -a "/usr/share/lxc/cache/${_MODE}/${_DISTRIBUTION}_${_ARCHITECTURE}" "${_ROOTFS}" || return 1
+		[ -e "${_ROOTFS}" ] || mkdir -p "${_ROOTFS}"
+		cp -a "/usr/share/lxc/cache/${_MODE}/${_DISTRIBUTION}_${_ARCHITECTURE}"/{.?*,*} "${_ROOTFS}" || return 1
 	elif ls "/usr/share/lxc/cache/${_MODE}/${_DISTRIBUTION}_${_ARCHITECTURE}".* > /dev/null 2>&1
 	then
 		# system cache in the form of a tarball
@@ -463,8 +464,7 @@
 			if [ -e "/usr/share/lxc/cache/${_MODE}/${_DISTRIBUTION}_${_ARCHITECTURE}.${_FORMAT}" ]
 			then
 				echo -n "Extracting system cache to ${_ROOTFS}..."
-
-				mkdir -p "${_ROOTFS}"
+				[ -e "${_ROOTFS}" ] || mkdir -p "${_ROOTFS}"
 				tar xf "/usr/share/lxc/cache/${_MODE}/${_DISTRIBUTION}_${_ARCHITECTURE}.${_FORMAT}" -C "${_ROOTFS}" || return 1
 				break
 			fi
@@ -478,7 +478,8 @@
 
 		# make a local copy of the minimal system
 		echo -n "Copying local cache to ${_ROOTFS}..."
-		cp -a "${_CACHE}/${_DISTRIBUTION}_${_ARCHITECTURE}" "${_ROOTFS}" || return 1
+		[ -e "${_ROOTFS}" ] || mkdir -p "${_ROOTFS}"
+		cp -a "${_CACHE}/${_DISTRIBUTION}_${_ARCHITECTURE}"/{.?*,*} "${_ROOTFS}" || return 1
 	fi
 
 	# Add local repositories configured from preseed file

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to