generator: Code to handle optional arguments in daemon functions.
[libguestfs.git] / TODO
diff --git a/TODO b/TODO
index 2301c27..5002fc1 100644 (file)
--- a/TODO
+++ b/TODO
@@ -206,6 +206,10 @@ http://www.perlmonks.org/index.pl?node_id=582185
 Note that pty requires cooperation inside the C code too (there are
 two sides to a pty, and one has to be handled after the fork).
 
 Note that pty requires cooperation inside the C code too (there are
 two sides to a pty, and one has to be handled after the fork).
 
+[I tried to implement this in the new C virt-rescue, but it doesn't
+work.  qemu is implementing its own ptys, and they are broken.  Need
+to fix qemu.]
+
 Windows-based daemon/appliance
 ------------------------------
 
 Windows-based daemon/appliance
 ------------------------------
 
@@ -234,6 +238,8 @@ However this won't work easily for VM disk images in the disk image.
 One would have to download those to the host and launch another
 libguestfs instance.
 
 One would have to download those to the host and launch another
 libguestfs instance.
 
+[Not sure this is such a good idea.  See also live CD inspection idea below.]
+
 Map filesystems to disk blocks
 ------------------------------
 
 Map filesystems to disk blocks
 ------------------------------
 
@@ -264,16 +270,6 @@ Fix 'file'
 https://www.redhat.com/archives/libguestfs/2010-June/msg00053.html
 https://www.redhat.com/archives/libguestfs/2010-June/msg00079.html
 
 https://www.redhat.com/archives/libguestfs/2010-June/msg00053.html
 https://www.redhat.com/archives/libguestfs/2010-June/msg00079.html
 
-Regression test on virt-inspector
----------------------------------
-
-Occasionally we break virt-inspector through some change.  We should
-add a regression test for it.  However this is hard because we'd need
-to avoid having to carry huge images.
-
-Update: I managed to fit a real-but-minimal Fedora 13 image into 6.2 MB.
-See: http://rwmj.wordpress.com/2010/09/07/tip-pack-files-into-a-new-disk-image/#content
-
 Freeze/thaw filesystems
 -----------------------
 
 Freeze/thaw filesystems
 -----------------------
 
@@ -319,7 +315,6 @@ Currently LUKS support only works if the device contains volume
 groups.  If it contains, eg., partitions, you cannot access them.
 We would like to add:
 
 groups.  If it contains, eg., partitions, you cannot access them.
 We would like to add:
 
-  - An easier way to use this from guestfish.
   - Direct access to the /dev/mapper device (eg. if it contains
     anything apart from VGs).
 
   - Direct access to the /dev/mapper device (eg. if it contains
     anything apart from VGs).
 
@@ -347,3 +342,38 @@ Eric Sandeen pointed out the blktrace tool which is a better way of
 capturing traces than using patched qemu (see
 contrib/visualize-alignment).  We would still use the same
 visualization tools in conjunction with blktrace traces.
 capturing traces than using patched qemu (see
 contrib/visualize-alignment).  We would still use the same
 visualization tools in conjunction with blktrace traces.
+
+guestfish parsing
+-----------------
+
+At the moment guestfish uses an ad hoc parser which has many
+shortcomings.  We should change to using a lex/yacc-based scanner and
+parser (there are better parsers out there, but yacc is sufficient and
+very widely available).
+
+The scanner must deal with the case of parsing a whole command string,
+eg. for a command that the user types in:
+
+ ><fs> add-drive-opts "/tmp/foo" readonly:true
+
+and also with parsing single words from the command line:
+
+ guestfish add-drive-opts /tmp/foo readonly:true
+
+Note the quotes are for scanning and don't indicate types.
+
+We should also allow variables and expressions as part of this new
+parsing code, eg:
+
+ set roots inspect-os
+ set product inspect-get-product-name %{roots[0]}
+
+% is better than $ because of shell escaping and confusion with shell
+variables.
+
+live CD inspection
+------------------
+
+guestfish -i livecd.iso
+
+Could this be done through the core API and existing calls?