summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2015-01-01 00:25:54 +0000
committerTiago Gomes <tiago.gomes@codethink.co.uk>2015-01-02 13:47:16 +0000
commit807e6a90876c5469d2421a47649d15f06e94ca36 (patch)
treec657fed52e481186758f11893451fdac769cfe11
parentf33748d6e6795751e7ea628d5f4e8478353a88ee (diff)
downloadmorph-807e6a90876c5469d2421a47649d15f06e94ca36.tar.gz
Add some checks to the sysroot deployment extension
Ensure that a) the deployment directory must not exist b) the extension can not be used to upgrade a system
-rwxr-xr-xmorphlib/exts/sysroot.check30
-rwxr-xr-xmorphlib/exts/sysroot.write4
2 files changed, 31 insertions, 3 deletions
diff --git a/morphlib/exts/sysroot.check b/morphlib/exts/sysroot.check
new file mode 100755
index 00000000..bfacd3fc
--- /dev/null
+++ b/morphlib/exts/sysroot.check
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Copyright (C) 2015 Codethink Limited
+#
+# 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; version 2 of the License.
+#
+# 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.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Preparatory checks for Morph 'sysroot' write extension
+
+set -eu
+
+location="$1"
+if [ -d "$location" ]; then
+ echo >&2 "ERROR: Deployment directory already exists: $location"
+ exit 1
+fi
+
+if [ "$UPGRADE" == "yes" ]; then
+ echo >&2 "ERROR: Cannot upgrade a sysroot deployment"
+ exit 1
+fi
diff --git a/morphlib/exts/sysroot.write b/morphlib/exts/sysroot.write
index 1ae4864f..be315365 100755
--- a/morphlib/exts/sysroot.write
+++ b/morphlib/exts/sysroot.write
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 2014 Codethink Limited
+# Copyright (C) 2014,2015 Codethink Limited
#
# 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
@@ -18,9 +18,7 @@
set -eu
-# Ensure the target is an empty directory
mkdir -p "$2"
-find "$2" -mindepth 1 -delete
# Move the contents of our source directory to our target
# Previously we would (cd "$1" && find -print0 | cpio -0pumd "$absolute_path")