Add a simple function to ease the usage of Mkdtemp.mkdtemp. --- mllib/mkdtemp.ml | 5 +++++ mllib/mkdtemp.mli | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/mllib/mkdtemp.ml b/mllib/mkdtemp.ml index 2e64862..353b04b 100644 --- a/mllib/mkdtemp.ml +++ b/mllib/mkdtemp.ml @@ -16,4 +16,9 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) +open Common_utils + external mkdtemp : string -> string = "virt_builder_mkdtemp" + +let temp_dir ?(base_dir = Filename.temp_dir_name) prefix suffix + mkdtemp (base_dir // (prefix ^ "XXXXXX" ^ suffix)) diff --git a/mllib/mkdtemp.mli b/mllib/mkdtemp.mli index 674e6f2..9abb10c 100644 --- a/mllib/mkdtemp.mli +++ b/mllib/mkdtemp.mli @@ -18,3 +18,10 @@ val mkdtemp : string -> string (** [mkdtemp pattern] Tiny wrapper to the C [mkdtemp]. *) + +val temp_dir : ?base_dir:string -> string -> string -> string +(** [temp_dir prefix suffix] creates a new unique temporary directory. + + The optional [~base_dir:string] changes the base directory where + to create the new temporary directory; if not specified, the default + [Filename.temp_dir_name] is used. *) -- 1.9.3
Pino Toscano
2014-Jul-07 17:53 UTC
[Libguestfs] [PATCH] Use Mkdtemp.temp_dir instead of Mkdtemp.mkdtemp
--- builder/sigchecker.ml | 2 +- sysprep/sysprep_operation_script.ml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/builder/sigchecker.ml b/builder/sigchecker.ml index c35d2da..08efa5d 100644 --- a/builder/sigchecker.ml +++ b/builder/sigchecker.ml @@ -54,7 +54,7 @@ let import_keyfile ~gpg ~gpghome ~verbose keyfile let rec create ~verbose ~gpg ~gpgkey ~check_signature (* Create a temporary directory for gnupg. *) - let tmpdir = Mkdtemp.mkdtemp (Filename.temp_dir_name // "vb.gpghome.XXXXXX") in + let tmpdir = Mkdtemp.temp_dir "vb.gpghome." "" in rmdir_on_exit tmpdir; (* Make sure we have no check_signature=true with no actual key. *) let check_signature, gpgkey diff --git a/sysprep/sysprep_operation_script.ml b/sysprep/sysprep_operation_script.ml index d486a88..06d4dfc 100644 --- a/sysprep/sysprep_operation_script.ml +++ b/sysprep/sysprep_operation_script.ml @@ -44,7 +44,7 @@ let rec script_perform ~verbose ~quiet (g : Guestfs.guestfs) root side_effects match !scriptdir with | Some dir -> dir, false | None -> - let tmpdir = Mkdtemp.mkdtemp (Filename.temp_dir_name // "virt-sysprep.XXXXXX") in + let tmpdir = Mkdtemp.temp_dir "virt-sysprep." "" in tmpdir, true in (* Mount the directory locally. *) -- 1.9.3
Richard W.M. Jones
2014-Jul-07 18:30 UTC
Re: [Libguestfs] [PATCH] Use Mkdtemp.temp_dir instead of Mkdtemp.mkdtemp
On Mon, Jul 07, 2014 at 07:53:52PM +0200, Pino Toscano wrote:> --- > builder/sigchecker.ml | 2 +- > sysprep/sysprep_operation_script.ml | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/builder/sigchecker.ml b/builder/sigchecker.ml > index c35d2da..08efa5d 100644 > --- a/builder/sigchecker.ml > +++ b/builder/sigchecker.ml > @@ -54,7 +54,7 @@ let import_keyfile ~gpg ~gpghome ~verbose keyfile > > let rec create ~verbose ~gpg ~gpgkey ~check_signature > (* Create a temporary directory for gnupg. *) > - let tmpdir = Mkdtemp.mkdtemp (Filename.temp_dir_name // "vb.gpghome.XXXXXX") in > + let tmpdir = Mkdtemp.temp_dir "vb.gpghome." "" in > rmdir_on_exit tmpdir; > (* Make sure we have no check_signature=true with no actual key. *) > let check_signature, gpgkey > diff --git a/sysprep/sysprep_operation_script.ml b/sysprep/sysprep_operation_script.ml > index d486a88..06d4dfc 100644 > --- a/sysprep/sysprep_operation_script.ml > +++ b/sysprep/sysprep_operation_script.ml > @@ -44,7 +44,7 @@ let rec script_perform ~verbose ~quiet (g : Guestfs.guestfs) root side_effects > match !scriptdir with > | Some dir -> dir, false > | None -> > - let tmpdir = Mkdtemp.mkdtemp (Filename.temp_dir_name // "virt-sysprep.XXXXXX") in > + let tmpdir = Mkdtemp.temp_dir "virt-sysprep." "" in > tmpdir, true inACK both. Can we use ~prog as an argument to this new function? In most modules there is now a global 'prog' variable. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
Reasonably Related Threads
- Re: [PATCH] Use Mkdtemp.temp_dir instead of Mkdtemp.mkdtemp
- [PATCH 1/2] mllib: add an hook to cleanup directories on exit
- [PATCH v2 1/2] mllib: curl: add optional tmpdir parameter
- [PATCH 1/2] mllib: curl: add optional tmpdir parameter
- Re: [PATCH 2/2] builder: use a disposable GPG keyring for every Sigchecker