drom_lib

The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience
Library drom_lib
type header_sep = {
sep_name : string;
sep_regexp : Str.regexp;
sep_add_line : int;
mutable sep_headers : header list;
}
and header = {
header_id : string;
header_lines : string list;
header_sep : header_sep;
mutable header_files : (int * file) list;
}
and file = {
file_name : string;
file_headers : (int * header) list;
}
type config = {
ignore_headers : EzCompat.StringSet.t;
ignore_files : EzCompat.StringSet.t;
ignore_extensions : EzCompat.StringSet.t;
}
type env = {
config : config;
headers : ( string, header ) Hashtbl.t;
mutable files : ( string, file ) Hashtbl.t;
mutable save_to_ignore : EzCompat.StringSet.t;
}
val ignore_files_filename : string
val ignore_files_more_filename : string
val ignore_headers_filename : string
val homedir : string
val config_dir : string
val max_header_lines : int ref
val min_char_repetition : int ref
val stars : string
val spaces : string
val new_header_sep : ?sep_add_line:int -> string -> string -> header_sep
val ml_header : header_sep
val cc_header : header_sep
val sh_header : header_sep
val reset_headers : env -> unit
val is_header_sep : string -> header_sep -> bool
val new_header_id : string -> string
val new_header : env -> header_sep -> 'a -> string list -> ('b * header) list
val read_headers : env -> string list -> header_sep -> (int * header) list
val record_header : ?config:bool -> env -> string -> header_sep -> unit
val list_ignore_files : config -> EzCompat.StringSet.elt list -> config
val list_ignore_headers : config -> EzCompat.StringSet.elt list -> config
val add_default_ignored : config -> config
val scan_dir : env -> string -> unit
val check_file : env -> EzCompat.StringSet.elt -> string -> unit
val scan_dirs : env -> string list -> unit
val fprintf_loc : out_channel -> string -> int -> unit
val print_headers : EzCompat.StringSet.t -> header_sep -> string -> unit
val save_ignored : env -> unit
val remove_empty_lines : string list -> string list
val replace_header : header -> header -> int -> file -> bool
val add_default_header : header -> file -> bool
type args = {
mutable arg_add_default : string list;
mutable arg_dirs : string list;
mutable arg_replace : string list;
mutable arg_replace_by : string option;
mutable arg_skip_headers : EzCompat.StringSet.t;
}
val undo_oc : out_channel option ref
val get_undo_oc : unit -> out_channel
val init_action : args -> env -> unit
val do_actions : args -> env -> unit
val new_args : unit -> args
val action : args -> unit
val cmd_name : string