move preparation to selenium file

This commit is contained in:
Mylloon 2023-05-12 20:30:02 +02:00
parent 737c819649
commit 255c33b1a3
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
2 changed files with 29 additions and 20 deletions

View file

@ -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)
;; ;;

View file

@ -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)