move preparation to selenium file
This commit is contained in:
parent
737c819649
commit
255c33b1a3
2 changed files with 29 additions and 20 deletions
27
bin/main.ml
27
bin/main.ml
|
@ -1,26 +1,13 @@
|
||||||
open Pusk.Utils
|
open Pusk.Utils
|
||||||
open Pusk.Selenium_init
|
open Pusk.Selenium_init
|
||||||
|
|
||||||
|
let main = ()
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
(* Selenium *)
|
let selenium = prepare "4.9.0" (Gecko "0.33.0") in
|
||||||
let version_selenium = "4.9.0" in
|
let selenium_pid = run selenium in
|
||||||
let selenium = fmt "selenium-%s.jar" version_selenium in
|
|
||||||
if not (Sys.file_exists selenium) then Lwt_main.run (download_selenium version_selenium);
|
|
||||||
(* Gecko Driver *)
|
|
||||||
let driver = fmt "geckodriver" in
|
|
||||||
if not (Sys.file_exists driver)
|
|
||||||
then (
|
|
||||||
let version_driver = "0.33.0" in
|
|
||||||
let archive = fmt "./gecko-%s.tar.gz" version_driver in
|
|
||||||
Lwt_main.run (download_gecko_driver version_driver archive);
|
|
||||||
let _ = Sys.command (fmt "tar xvzf %s" archive) in
|
|
||||||
());
|
|
||||||
let selenium_pid =
|
|
||||||
run_program_in_background "java" [ fmt "-jar %s" selenium; "standalone" ]
|
|
||||||
in
|
|
||||||
print_endline (fmt "Java running in %d" selenium_pid);
|
print_endline (fmt "Java running in %d" selenium_pid);
|
||||||
let closed_pid, _ = Unix.waitpid [] selenium_pid in
|
main;
|
||||||
if not (closed_pid = selenium_pid)
|
let closed_pid = close selenium_pid in
|
||||||
then print_endline "WTF???"
|
print_endline (fmt "Program %d closed!" closed_pid)
|
||||||
else print_endline (fmt "Program %d closed!" closed_pid)
|
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -60,3 +60,25 @@ let run_program_in_background program args =
|
||||||
Unix.execvp program (Array.of_list (program :: args))
|
Unix.execvp program (Array.of_list (program :: args))
|
||||||
| _ -> pid (* Parent process *)
|
| _ -> pid (* Parent process *)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
type driver = Gecko of string
|
||||||
|
|
||||||
|
let prepare version_selenium driver =
|
||||||
|
(* Gecko Driver *)
|
||||||
|
(match driver with
|
||||||
|
| Gecko version_driver ->
|
||||||
|
if not (Sys.file_exists "geckodriver")
|
||||||
|
then (
|
||||||
|
let archive = fmt "./gecko-%s.tar.gz" version_driver in
|
||||||
|
Lwt_main.run (download_gecko_driver version_driver archive);
|
||||||
|
(* TODO: Use native version instead of relying on Unix tools *)
|
||||||
|
let _ = Sys.command (fmt "tar xvzf %s" archive) in
|
||||||
|
()));
|
||||||
|
(* Selenium *)
|
||||||
|
let selenium = fmt "selenium-%s.jar" version_selenium in
|
||||||
|
if not (Sys.file_exists selenium) then Lwt_main.run (download_selenium version_selenium);
|
||||||
|
selenium
|
||||||
|
;;
|
||||||
|
|
||||||
|
let run path = run_program_in_background "java" [ fmt "-jar %s" path; "standalone" ]
|
||||||
|
let close pid = fst (Unix.waitpid [] pid)
|
||||||
|
|
Loading…
Reference in a new issue