(* Get stdlib directory. *)
let datadir =
- try Sys.getenv "GOALS_DATADIR" with Not_found -> Config.datadir
+ try Sys.getenv "GOALS_DATADIR"
+ with Not_found -> Config.datadir // "goals"
let stdlibdir = datadir // "stdlib"
let prelude_gl_file = stdlibdir // "prelude.gl"
let prelude_sh_file = stdlibdir // "prelude.sh"
let input_file = ref "Goalfile"
let includes = ref [stdlibdir]
let add_include dir = includes := dir :: !includes
-let nr_jobs = ref 4 (* XXX use nproc *)
+let nr_jobs = ref (nprocs ())
+let silent = ref false
let use_prelude = ref true
let parse () =
failwithf "%s: cannot find the standard library directory, expected %s. If the standard library directory is in a non-standard location then set GOALS_DATADIR. If you can trying to run goals from the build directory then use ‘./run goals ...’"
Sys.executable_name stdlibdir;
+ let jobshelp =
+ sprintf "jobs Set number of parallel jobs (default: %d)" !nr_jobs in
let argspec = [
"-C", Arg.Set_string directory,
"directory Change to directory before running";
"--include", Arg.String add_include,
"dir Add include directory";
"-j", Arg.Set_int nr_jobs,
- "jobs Set number of parallel jobs";
+ jobshelp;
"--jobs", Arg.Set_int nr_jobs,
- "jobs Set number of parallel jobs";
+ jobshelp;
"--no-prelude",Arg.Clear use_prelude,
" Do not automatically use prelude.gl from stdlib";
+ "-s", Arg.Set silent,
+ " Silent operation";
+ "--silent", Arg.Set silent,
+ " Silent operation";
+ "--quiet", Arg.Set silent,
+ " Silent operation";
"-v", Arg.Unit print_version,
" Print version and exit";
"--version", Arg.Unit print_version,
let includes () = !includes
let nr_jobs () = !nr_jobs
+let silent () = !silent
let use_prelude () = !use_prelude