Implement diskimage_grep() for loopback and guestfish.
authorMartin Schwenke <martin@meltin.net>
Fri, 11 Feb 2011 02:18:51 +0000 (13:18 +1100)
committerMartin Schwenke <martin@meltin.net>
Fri, 11 Feb 2011 02:18:51 +0000 (13:18 +1100)
Signed-off-by: Martin Schwenke <martin@meltin.net>
autocluster
config.d/05_diskimage_guestfish.defconf
config.d/05_diskimage_loopback.defconf

index 4ce31a79835b1c3d1e7fbe764b03c3ed8c05c451..ba64862429957788e7cd87b67d07c4127901ec75 100755 (executable)
@@ -622,7 +622,8 @@ make_system_disk_access_function ()
 for i in \
     mount unmount \
     mkdir_p substitute_vars chmod chmod_reference \
-    is_directory append_text_file append_text sed put ln_s command \
+    is_directory append_text_file append_text sed put ln_s grep \
+    command \
     ; do
     make_system_disk_access_function "diskimage_$i"
 done
index 9b2436132acb74cb176e554129e405f5ed932a1e..5e82433be9c693a36823d7574af8cd4d7ef0408d 100644 (file)
@@ -116,6 +116,21 @@ diskimage_sed_guestfish ()
     rm "$t"
 }
 
+diskimage_grep_guestfish ()
+{
+    local file="$1" ; shift
+
+    # guestfish's grep doesn't support options like -f, so don't use it.
+    local ret
+    local t=$(mktemp)
+    guestfish --remote download "$file" "$t"
+    grep "$@" "$t"
+    ret=$?
+    rm "$t"
+
+    return $ret
+}
+
 diskimage_put_guestfish ()
 {
     guestfish --remote upload "$1" "$2"
index 421d32e412c89b75bd47ff42b340a1eb8812ac39..e6b4ab5a80871460eafc8ce42a65f6256e52702f 100644 (file)
@@ -112,6 +112,12 @@ diskimage_sed_loopback ()
     sed -i.org "$@" "mnt$file"
 }
 
+diskimage_grep_loopback ()
+{
+    local file="$1" ; shift
+    grep "$@" "mnt$file"
+}
+
 diskimage_put_loopback ()
 {
     cp "$1" "mnt$2"