summaryrefslogtreecommitdiffstats
path: root/fish/fish.c
Commit message (Collapse)AuthorAgeFilesLines
* fish: Remove some unused local variables.Richard W.M. Jones2010-12-091-2/+2
|
* fish: Don't use external pod2text program.Richard W.M. Jones2010-11-261-18/+0
| | | | | | | This removes the dependency from guestfish to the external pod2text program (and hence the final dependency on perl for guestfish). This is done by storing the formatted pod2text output in guestfish as the help text.
* fish: Keep device names in options drives list.Richard W.M. Jones2010-11-251-2/+3
| | | | | | | In the 'struct drv *drvs' structure, keep a list of the device name(s) for each added drive or guest. The device name is the canonical name as that drive would be known inside libguestfs, eg. "/dev/sda"
* fish: Add --rw option (does nothing yet).Richard W.M. Jones2010-11-081-1/+6
| | | | | | | | | | This adds the guestfish --rw option, intended in future to be required for writing to disk images. At the moment this does not change the default and so does nothing. This patch is intended for backporting to the stable branches so that we can start to introduce scripts which use 'guestfish --rw'.
* fish: Add --listen --csh to for csh, tcsh compatibility.Richard W.M. Jones2010-11-051-0/+5
| | | | (Thanks Eric Blake).
* fish: '-i' option automatically handles whole-disk encryption.Richard W.M. Jones2010-11-051-64/+0
| | | | | | | | | | | This feature is also available in guestmount because of the shared option parsing code. You don't need to do anything to enable it, just using -i will attempt decryption of encrypted partitions. Only works for simple Fedora whole-disk encryption. It's a work-in-progress to make it work for other types of encryption.
* fish: Make the 'help' command more helpful.Richard W.M. Jones2010-11-041-2/+2
|
* Unify guestfish and guestmount options processing (RHBZ#642932).Richard W.M. Jones2010-10-271-239/+41
| | | | | | | | | | | | | | | In guestfish, factor out the processing of the options -a, -c, -d, -i, -m, -n, -r, -v, -V, -x into a separate set of files: options.c, options.h, inspect.c, virt.c. Change guestmount so that it uses these same files (from the ../fish directory) to process the same options. This unifies the handling of these options between the two programs. It also adds the useful inspection feature to guestmount, so you can now do: guestmount -d Guest -i --ro mnt/
* Enable autosync by default.Richard W.M. Jones2010-10-271-2/+0
|
* fish: Specify format of disks (RHBZ#642934,CVE-2010-3851).Richard W.M. Jones2010-10-221-5/+28
| | | | | | | | For libvirt guests, the disk format is copied from libvirt (if libvirt knows it). For command line disk images, you can use --format to override format auto-detection.
* Allow $TMPDIR to override most temporary directory uses.Richard W.M. Jones2010-09-241-1/+1
| | | | | | | Be more consistent in allowing the user to override use of the temporary directory by specifying $TMPDIR. Also prefer P_tmpdir macro (defined in <stdio.h>) if that is defined, rather than hard-coding "/tmp" for the fallback location.
* fish: Fix segfault in free_drives() function.Richard W.M. Jones2010-09-221-2/+2
| | | | | This updates commit 8ea62c8d7f3f7f7e4057b93105cf979271aa13f4 so it doesn't try to free the optarg (stack-allocated) strings.
* leak: Clear history before exiting guestfish.Richard W.M. Jones2010-09-211-0/+1
| | | | | | | | | Clear the in-memory history before exiting. This removes some but not all memory leaks associated with using the GNU History library. As far as I can tell it is not possible to free up everything used by GNU History. (Found by valgrind).
* leak: Free list of drives and mountpoints in guestfish.Richard W.M. Jones2010-09-211-0/+38
| | | | | | | | | | Previously the list of -a, -d, -m, -N parameters were leaked. This change frees them explicitly. This is not such an important fix since guestfish is a one-shot program, but it aids in finding other leaks in future. (Found by valgrind).
* fish: Add --echo-keys option to allow passphrases/keys to be echoed.Richard W.M. Jones2010-09-211-8/+15
| | | | | See also: http://catless.ncl.ac.uk/Risks/26.17.html#subj13.3
* generator: Generate guestfish-only commands.Richard W.M. Jones2010-09-181-208/+2
| | | | | | The guestfish-only commands such as 'alloc' and 'edit' are now generated from one place in the generator instead of being spread around ad-hoc in the C code.
* fish: Correction for online help for 'edit' and 'more' commands.Richard W.M. Jones2010-09-171-8/+2
| | | | | This corrects commit b5c287bcd456bdb02d8ec0443483df34f4fd6b5d and commit 639ca1828b167bf59353f0cd3c8c79c6289bbd5d.
* fish: If -m option fails, suggest a mountpoint.Richard Jones2010-09-151-1/+14
|
* fish: In usage message use new-style -i option syntax.Richard Jones2010-09-141-2/+2
|
* fish: Update copyright dates in usage message.Richard Jones2010-09-141-1/+1
|
* fish: Remove extraneous space from usage message.Richard Jones2010-09-141-1/+1
|
* syntax: Remove unused assert.h header.Richard Jones2010-09-101-1/+0
|
* fish: Implement copy-in and copy-out commands.Richard Jones2010-09-091-0/+30
|
* fish: Allow guestfish -N help for listing prepared disk image help.Richard Jones2010-09-081-1/+4
|
* fish: Implement progress bars in guestfish.Richard Jones2010-09-011-0/+22
| | | | | | | | | | | | | | | | | The progress bar is updated 3 times per second, and is not displayed at all for operations which take less than two seconds. You can disable progress bars by using the flag --no-progress-bars, and you can enable progress bars in non-interactive sessions with the flag --progress-bars. A good way to test this is to use the following command: guestfish --progress-bars \ -N disk:10G \ zero-device /dev/sda (adjust "10G" to get different lengths of time).
* fish: Detect UTF-8 output and open termcap/terminfo database.Richard Jones2010-09-011-0/+35
| | | | | | Provide a generic mechanism within guestfish to detect if output if UTF-8 and to open the termcap (or terminfo) database for the current terminal type.
* build: Don't add version extra string to the version number.Richard Jones2010-08-271-2/+6
| | | | | | | | | | | | If this string was non-empty, then it broke a lot of things because autoconf and other parts of the build system were expecting this string to contain a simple MAJOR.MINOR.RELEASE version number. This requires changes to guestfish and guestmount so they use the guestfs_version API to fetch the version from the library. (The Perl tools were already doing it this way). In a way this is more accurate, because it's no longer hard-coded in the binary, but fetched from the dynamically linked libguestfs.so.
* fish: Reimplement -i option using new C-based inspection.Richard Jones2010-08-171-119/+45
| | | | | | | | | | | | | | Don't shell out to virt-inspector. Instead, use the new C-based inspection APIs. This is much faster. The new syntax is slightly different: guestfish -a disk.img -i guestfish -d guest -i However, the old syntax still works.
* fish: Add -c/--connect and -d/--domain options.Richard Jones2010-08-171-31/+95
| | | | | | | | The -d option lets you specify libvirt domains. The disks from these domains are found and added, as if you'd named them with -a. The -c option lets you specify a libvirt URI, which is needed when we consult libvirt to implement the above.
* generator: Add 'Key' parameter type.Richard Jones2010-07-211-0/+67
| | | | | | | | | | | | | Add a 'Key' parameter type, used for passing sensitive key material into libguestfs. Eventually the plan is to mlock() key material into memory. However this is very difficult to achieve because the encoded XDR strings end up in many places. Therefore users should note that key material passed to libguestfs might end up in swap. The only difference between 'Key' and 'String' currently is that guestfish requests the key from /dev/tty with echoing turned off.
* fish: Don't fail if -m and --listen flags are both given (RHBZ#612178).Richard Jones2010-07-071-0/+11
| | | | | | | | | | | | | Testing this against a Fedora disk image: $ ./fish/guestfish --ro -a F13.img -m /dev/sda1 --listen export GUESTFISH_PID=6033 $ ./fish/guestfish --remote=6033 -- ping-daemon $ ./fish/guestfish --remote=6033 -- ping-daemon $ ./fish/guestfish --remote=6033 -- exit Without this fix the first remote command would fail because qemu would have already been killed.
* fish: help command return error for non-existent commands (RHBZ#597145).Richard Jones2010-06-021-23/+55
| | | | | | | | | | | | | | With this change, the exit status indicates error for non-existent commands. $ guestfish -h foo foo: command not known, use -h to list all commands $ echo $? 1 $ guestfish help foo foo: command not known, use -h to list all commands $ echo $? 1
* fish: Don't eat words when completing case-insensitive paths (RHBZ#582993).Richard Jones2010-05-251-0/+7
|
* fish: New command: 'supported'Richard Jones2010-05-251-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | This checks all available optional groups and prints out which ones are supported by the daemon. Note you must launch the appliance first. Example: ><fs> supported augeas yes inotify yes linuxfsuuid yes linuxmodules yes linuxxattrs yes lvm2 yes mknod yes ntfs3g yes ntfsprogs yes realpath yes scrub yes selinux yes xz yes zerofree yes
* fish: Allow suffixes on number parameters (eg. 1M)Richard Jones2010-05-211-20/+4
| | | | | | | | | | | | | | | | This small change uses the gnulib xstrtoll functionality to enable suffixes on integer parameters in guestfish. For example: truncate-size /file 1G (previously you would have had to given the full number). This also applies to the 'alloc' and 'sparse' commands (and indirectly to the -N option). The specification for these commands has changed slightly, in that 'alloc foo 1MB' would now use SI units, allocating 1000000 bytes instead of a true megabyte. All existing uses would use 'alloc foo 1M' which still allocates true megabytes.
* New API: write for creating files with fixed content (RHBZ#501889).Richard Jones2010-05-201-1/+1
| | | | | | | | | | | | | The guestfs_write call can be used to create small files with arbitrary 8 bit content, including \0 bytes. This replaces and deprecates write-file, which cannot be modified to use BufferIn because of an unfortunate choice in the ABI: the size parameter to write-file, if zero, means that the daemon tries to calculate the length of the buffer using strlen. However this fails if we pass a zero-length buffer using BufferIn because then the daemon tries to do strlen on a (really) zero length buffer, not even containing a terminating \0 character, thus segfaulting.
* fish: Fix build error if built without readline.Richard Jones2010-05-201-2/+4
| | | | | | fish.c:1447: error: 'add_history_line' defined but not used [-Wunused-function] (Reported by Matt Booth)
* guestfish: Fix build error in 'print_shell_quote' function.Richard Jones2010-05-131-1/+1
| | | | | Amend commit 1c6ed48bd3cd471dc so the prototype of 'print_shell_quote' function is correct.
* guestfish -i and virt-inspector work on filenames containing spaces ↵Richard Jones2010-05-131-24/+81
| | | | | | | | | | | | | | (RHBZ#507810). This commit fixes a long-standing bug which prevented guestfish -i and virt-inspector from working on disk images which had a space in the filename (or other unsafe characters). It works by ensuring that the strings passed between guestfish -i and virt-inspector are quoted correctly in both directions. Note that this commit adds a dependency from virt-inspector to the perl module String::ShellQuote. We have previously used this module in virt-make-fs.
* fish: With both '-x' and '-i', pass through '-x' to inferior process.Richard Jones2010-05-121-0/+2
|
* Revert "fish: Add 'please wait' message when launching (and interactive)."Richard Jones2010-05-081-2/+0
| | | | This reverts commit 01fedcde05c930c1413e9fe0909fa1da1f360cdf.
* fish: Add 'please wait' message when launching (and interactive).Richard Jones2010-05-081-0/+2
|
* fish: Make 'launch' function static.Richard Jones2010-05-081-13/+12
| | | | | | This commit makes the launch function static and private to 'fish.c', and changes the generator so the function is no longer called for the 'run/launch' command.
* fish: Make '-x' option enable traces instead of using separate echo path.Richard Jones2010-05-081-9/+1
| | | | | | Previously we had separate code paths for echoing commands (-x) and tracing (guestfs_set_trace). This just unifies that so that the guestfish -x option enables tracing.
* fish: Add 'man' command which opens the manual.Richard Jones2010-04-241-2/+14
|
* fish: Fix segfault in '-a' option.Richard Jones2010-04-231-1/+2
| | | | | This fixes a segfault in the guestfish -a option which you would get when using guestfish 1.3.6.
* fish: Add -N option for making prepared disk images.Richard Jones2010-04-221-11/+61
| | | | | | | | | | | | | | | | | Previously you might have typed: $ guestfish ><fs> alloc test1.img 100M ><fs> run ><fs> part-disk /dev/sda mbr ><fs> mkfs ext4 /dev/sda1 now you can do the same with: $ guestfish -N fs:ext4 Some tests have also been updated to use this new functionality.
* fish: Allow -<<END as a syntax for uploading "heredocs".Richard Jones2010-04-191-0/+141
| | | | | | | | | | | | For example: ><fs> upload -<<END /foo some data some more data END ><fs> cat /foo some data some more data
* fish: Allow '-' prefix on command line to override exit on error (RHBZ#578407).Richard Jones2010-04-131-2/+13
| | | | | | | | | | | | | | | Allow -cmd on the command line to mean that normal exit on error behaviour is overridden, ie. we will not exit. This allows you to do: guestfish -- command : -command : command with the second command allowing errors. (Note that '--' is required to stop getopt parsing -command as an option). Also this fixes the remote case which is what the original bug report was about.
* fish: Print extended help when the user types an unknown command first.Richard Jones2010-04-071-0/+19
| | | | | | | | $ guestfish /tmp/disk.img /tmp/disk.img: unknown command Did you mean to open a disk image? guestfish -a disk.img For a list of commands: guestfish -h For complete documentation: man guestfish