3 * Stefano Zacchiroli <zack@cs.unibo.it>
4 * for the HELM Team http://helm.cs.unibo.it/
6 * This file is part of HELM, an Hypertextual, Electronic
7 * Library of Mathematics, developed at the Computer Science
8 * Department, University of Bologna, Italy.
10 * HELM is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
15 * HELM is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with HELM; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
25 * For details, see the HELM World-Wide-Web page,
26 * http://helm.cs.unibo.it/
29 (** 'mkdir' failed, arguments are: name of the directory to be created and
31 exception Mkdir_failure of string * string
33 (** "fold_left" like function on file lines, trailing newline is not passed to
35 val fold_file : ('a -> string -> 'a) -> 'a -> string -> 'a
36 (* "iter" like function on file lines, trailing newline is not passed to the
38 val iter_file : (string -> unit) -> string -> unit
40 (** like Hashtbl.fold but keys are processed ordered *)
41 val hashtbl_sorted_fold :
42 ('a -> 'b -> 'c -> 'c) -> ('a, 'b) Hashtbl.t -> 'c -> 'c
45 val cp: string -> string -> unit
46 (** wget frontend, if output is given it is the destination file, otherwise
47 standard wget rules are used. Additionally this function support also the
48 "file://" scheme for file system addressing *)
49 val wget: ?output: string -> string -> unit
50 (** gzip frontend. If keep = true original file will be kept, default is
51 false. output is the file on which gzipped data will be saved, default is
52 given file with an added ".gz" suffix *)
53 val gzip: ?keep: bool -> ?output: string -> string -> unit
54 (** gunzip frontend. If keep = true original file will be kept, default is
55 false. output is the file on which gunzipped data will be saved, default is
56 given file name without trailing ".gz" *)
57 val gunzip: ?keep: bool -> ?output: string -> string -> unit
58 (** tempfile frontend, return the name of created file. A special purpose
59 suffix is used (actually "_http_getter" *)
60 val tempfile: unit -> string
61 (** mkdir frontend, if parents = true also parent directories will be created.
62 If the given directory already exists doesn't act *)
63 val mkdir: ?parents: bool -> string -> unit
65 (** pretty printer for Unix.process_status values *)
66 val string_of_proc_status : Unix.process_status -> string
68 (** raw HTTP downloader, return Some the contents of downloaded resource or
69 None if an error occured while downloading. This function support also
70 "file://" scheme for filesystem resources *)
71 val http_get: string -> string option
72 (** 'iter' like method that iter over string slices (unspecified length) of a
73 remote resources fetched via HTTP GET requests *)
74 val http_get_iter_buf: callback:(string -> unit) -> string -> unit
76 (** add a line to a file (specified by name) _after_ a given line (defaults to
78 val add_line: fname:string -> ?position:int -> string -> unit
79 (** remove a line, if any, from a file specified by line number (0 based, i.e.
80 first line of file is line 0) *)
81 val remove_line: fname:string -> int -> unit
83 (** true on blanks-only and #-commented lines, false otherwise *)
84 val is_blank_line: string -> bool