diff options
author | Richard Jones <rjones@redhat.com> | 2010-04-19 14:41:01 +0100 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2010-04-19 15:08:45 +0100 |
commit | 3119aa687d4d594b50ee9df5ff6e8d709eb7ca85 (patch) | |
tree | f950fe7f4bce7b9795442b94e35afcef34159c66 /src | |
parent | 819f30e332160ba05f7bf6dd068622cc07bf9ffc (diff) | |
download | libguestfs-3119aa687d4d594b50ee9df5ff6e8d709eb7ca85.tar.gz libguestfs-3119aa687d4d594b50ee9df5ff6e8d709eb7ca85.tar.xz libguestfs-3119aa687d4d594b50ee9df5ff6e8d709eb7ca85.zip |
fish: Allow -<<END as a syntax for uploading "heredocs".
For example:
><fs> upload -<<END /foo
some data
some more data
END
><fs> cat /foo
some data
some more data
Diffstat (limited to 'src')
-rwxr-xr-x | src/generator.ml | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/generator.ml b/src/generator.ml index 65efd665..580cb143 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -7385,11 +7385,11 @@ and generate_fish_cmds () = function | Device n | String n - | OptString n - | FileIn n - | FileOut n -> pr " const char *%s;\n" n + | OptString n -> pr " const char *%s;\n" n | Pathname n - | Dev_or_Path n -> pr " char *%s;\n" n + | Dev_or_Path n + | FileIn n + | FileOut n -> pr " char *%s;\n" n | StringList n | DeviceList n -> pr " char **%s;\n" n | Bool n -> pr " int %s;\n" n | Int n -> pr " int %s;\n" n @@ -7446,11 +7446,11 @@ and generate_fish_cmds () = pr " %s = STRNEQ (argv[%d], \"\") ? argv[%d] : NULL;\n" name i i | FileIn name -> - pr " %s = STRNEQ (argv[%d], \"-\") ? argv[%d] : \"/dev/stdin\";\n" - name i i + pr " %s = file_in (argv[%d]);\n" name i; + pr " if (%s == NULL) return -1;\n" name | FileOut name -> - pr " %s = STRNEQ (argv[%d], \"-\") ? argv[%d] : \"/dev/stdout\";\n" - name i i + pr " %s = file_out (argv[%d]);\n" name i; + pr " if (%s == NULL) return -1;\n" name | StringList name | DeviceList name -> pr " %s = parse_string_list (argv[%d]);\n" name i; pr " if (%s == NULL) return -1;\n" name; @@ -7479,10 +7479,12 @@ and generate_fish_cmds () = List.iter ( function | Device name | String name - | OptString name | FileIn name | FileOut name | Bool name + | OptString name | Bool name | Int name | Int64 name -> () - | Pathname name | Dev_or_Path name -> + | Pathname name | Dev_or_Path name | FileOut name -> pr " free (%s);\n" name + | FileIn name -> + pr " free_file_in (%s);\n" name | StringList name | DeviceList name -> pr " free_strings (%s);\n" name ) (snd style); |