Just move the compress and decompress functions around.
authorRichard W.M. Jones <rjones@redhat.com>
Mon, 28 Apr 2008 15:10:00 +0000 (16:10 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Mon, 28 Apr 2008 15:10:00 +0000 (16:10 +0100)
diskzip/diskzip.ml

index f8d58b4..b4a0a5a 100644 (file)
@@ -134,6 +134,49 @@ OPTIONS" in
   else
     go_decompress ?output extcompress args
 
+(* Do compression. *)
+and go_compress extcompress images =
+  (* Create a Diskimage machine description from the requested images.  This
+   * also checks that everything we need is readable.
+   *)
+  let machine =
+    Diskimage.open_machine "diskzip" (List.map (fun n -> (n,n)) images) in
+
+  (* Scan the images for filesystems. *)
+  let machine = Diskimage.scan_machine machine in
+
+  (* Redirect output through external pipe if asked. *)
+  (match extcompress with
+   | None -> ()
+   | Some prog ->
+       let prog, progargs =
+        match prog with
+        | BZip2 -> "bzip2", [|"bzip2"; "-c"|]
+        | GZip -> "gzip", [|"gzip"; "-c"|]
+        | External prog -> "sh", [|"sh"; "-c"; prog |] in
+       let rfd, wfd = pipe () in
+       let pid = fork () in
+       if pid = 0 then (               (* child *)
+        close wfd;
+        dup2 rfd stdin;
+        close rfd;
+        execvp prog progargs
+       ) else (                                (* parent *)
+        close rfd;
+        dup2 wfd stdout;
+        close wfd
+       )
+  )
+
+
+
+
+
+
+
+
+
+
 and go_decompress ?output extcompress args =
   (* Read the input, which may be a single named file, or a series of
    * files (we just concatenate them).  We may have to feed the input
@@ -195,47 +238,6 @@ and go_decompress ?output extcompress args =
 
 
 
-(* Do compression. *)
-and go_compress extcompress images =
-  (* Create a Diskimage machine description from the requested images.  This
-   * also checks that everything we need is readable.
-   *)
-  let machine =
-    Diskimage.open_machine "diskzip" (List.map (fun n -> (n,n)) images) in
-
-  (* Scan the images for filesystems. *)
-  let machine = Diskimage.scan_machine machine in
-
-  (* Redirect output through external pipe if asked. *)
-  (match extcompress with
-   | None -> ()
-   | Some prog ->
-       let prog, progargs =
-        match prog with
-        | BZip2 -> "bzip2", [|"bzip2"; "-c"|]
-        | GZip -> "gzip", [|"gzip"; "-c"|]
-        | External prog -> "sh", [|"sh"; "-c"; prog |] in
-       let rfd, wfd = pipe () in
-       let pid = fork () in
-       if pid = 0 then (               (* child *)
-        close wfd;
-        dup2 rfd stdin;
-        close rfd;
-        execvp prog progargs
-       ) else (                                (* parent *)
-        close rfd;
-        dup2 wfd stdout;
-        close wfd
-       )
-  )
-
-
-
-
-
-
-
-
 (*
 (* Since we have the wonderful pa_bitmatch, might as well use it to
  * define a robust binary format for the compressed files.