X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Flibrary%2Flibrarian.mli;h=0e15e28bcc78dc5b88bdff6bc208e22d4939d23e;hb=7a3c40d0d56ba3c20126f1d2c9f651adc95eaef7;hp=0db8a83ef9a7719ebde8b348d6218352d254db04;hpb=5c1b44dfefa085fbb56e23047652d3650be9d855;p=helm.git diff --git a/helm/software/components/library/librarian.mli b/helm/software/components/library/librarian.mli index 0db8a83ef..0e15e28bc 100644 --- a/helm/software/components/library/librarian.mli +++ b/helm/software/components/library/librarian.mli @@ -1,8 +1,42 @@ +(* Copyright (C) 2004-2008, HELM Team. + * + * This file is part of HELM, an Hypertextual, Electronic + * Library of Mathematics, developed at the Computer Science + * Department, University of Bologna, Italy. + * + * HELM is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * HELM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HELM; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + * + * For details, see the HELM World-Wide-Web page, + * http://helm.cs.unibo.it/ + *) + exception NoRootFor of string +(* make a relative path absolute *) val absolutize: string -> string -val find_root: string -> string +(* a root file is a text, line oriented, file containing pairs separated by + * the '=' character. Example: + * + * baseuri = cic:/foo/bar + * include_paths = ../baz ../../pippo + * + * spaces at the end/begin of the line and around '=' are ignored, + * multiple spaces in the middle of an item are shrinked to one. + *) val load_root_file: string -> (string*string) list (* baseuri_of_script ?(inc:REG[matita.includes]) fname @@ -13,10 +47,18 @@ val load_root_file: string -> (string*string) list val baseuri_of_script: include_paths:string list -> string -> string * string * string * string -(* finds all the roots files in the specified dir *) +(* given a baseuri and a file name (relative to its root) + * returns a baseuri: + * mk_baseuri "cic:/matita" "nat/plus.ma" -> "cic:/matita/nat/plus" + *) +val mk_baseuri: string -> string -> string + +(* finds all the roots files in the specified dir, roots are + * text files, readable by the user named 'root' + *) val find_roots_in_dir: string -> string list -(* make *) +(* make implementation *) type options = (string * string) list module type Format = @@ -28,9 +70,12 @@ module type Format = val string_of_target_object: target_object -> string val build: options -> source_object -> bool val root_and_target_of: - options -> source_object -> string option * target_object + options -> source_object -> + (* root, writeable target, read only target *) + string option * target_object * target_object val mtime_of_source_object: source_object -> float option val mtime_of_target_object: target_object -> float option + val is_readonly_buri_of: options -> source_object -> bool end module Make : @@ -40,5 +85,20 @@ module Make : val make : string -> F.source_object list -> bool end +(* deps are made with scripts names, for example lines like + * + * nat/plus.ma nat/nat.ma logic/equality.ma + * + * state that plus.ma needs nat and equality + *) val load_deps_file: string -> (string * string list) list -val write_deps_file: string -> (string * string list) list -> unit +val write_deps_file: string option -> (string * string list) list -> unit + +(* FG ***********************************************************************) + +(* true if the argunent starts with a uri scheme prefix *) +val is_uri: string -> bool + +val debug: bool ref + +val time_stamp: string -> unit