This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
55
unikernel/duniverse/mirage/lib/devices/git.ml
Normal file
55
unikernel/duniverse/mirage/lib/devices/git.ml
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
open Functoria.DSL
|
||||
|
||||
type git_client = Git_client
|
||||
|
||||
let git_client = typ Git_client
|
||||
|
||||
let git_merge_clients =
|
||||
let packages = [ package "mimic" ] in
|
||||
let connect _ _modname = function
|
||||
| [ a; b ] -> code ~pos:__POS__ "Lwt.return (Mimic.merge %s %s)" a b
|
||||
| _ -> Misc.connect_err "git_merge_client" 2
|
||||
in
|
||||
impl ~packages ~connect "Mimic.Merge"
|
||||
(git_client @-> git_client @-> git_client)
|
||||
|
||||
let git_tcp =
|
||||
let packages = [ package ~max:"1.0.0" "git-net" ] in
|
||||
let connect _ modname = function
|
||||
| [ _tcpv4v6; ctx ] ->
|
||||
code ~pos:__POS__ {ocaml|%s.connect %s|ocaml} modname ctx
|
||||
| _ -> Misc.connect_err "git_tcp" 2
|
||||
in
|
||||
impl ~packages ~connect "Git_net.TCP.Make"
|
||||
(Tcp.tcpv4v6 @-> Mimic.mimic @-> git_client)
|
||||
|
||||
let git_ssh ?group ?authenticator ?key ?password () =
|
||||
let packages = [ package ~max:"1.0.0" "git-net" ] in
|
||||
let key = Runtime_arg.ssh_key ?group key
|
||||
and password = Runtime_arg.ssh_password ?group password
|
||||
and authenticator = Runtime_arg.ssh_authenticator ?group authenticator in
|
||||
let runtime_args = Runtime_arg.[ v key; v password; v authenticator ] in
|
||||
let connect _ modname = function
|
||||
| [ _tcpv4v6; ctx; key; password; authenticator ] ->
|
||||
code ~pos:__POS__
|
||||
{ocaml|%s.connect %s >>= %s.with_optionnal_key ?authenticator:%s ~key:%s ~password:%s|ocaml}
|
||||
modname ctx modname authenticator key password
|
||||
| _ -> Misc.connect_err "git_ssh" 5
|
||||
in
|
||||
impl ~packages ~connect ~runtime_args "Git_net.SSH.Make"
|
||||
(Tcp.tcpv4v6 @-> Mimic.mimic @-> git_client)
|
||||
|
||||
let git_http ?group ?authenticator ?headers () =
|
||||
let packages = [ package ~max:"1.0.0" "git-net" ] in
|
||||
let authenticator = Runtime_arg.tls_authenticator ?group authenticator
|
||||
and headers = Runtime_arg.http_headers ?group headers in
|
||||
let runtime_args = Runtime_arg.[ v authenticator; v headers ] in
|
||||
let connect _ modname = function
|
||||
| [ _tcpv4v6; ctx; authenticator; headers ] ->
|
||||
code ~pos:__POS__
|
||||
{ocaml|%s.connect %s >>= %s.with_optional_tls_config_and_headers ?headers:%s ?authenticator:%s|ocaml}
|
||||
modname ctx modname headers authenticator
|
||||
| _ -> Misc.connect_err "git_http" 4
|
||||
in
|
||||
impl ~packages ~connect ~runtime_args "Git_net.HTTP.Make"
|
||||
(Tcp.tcpv4v6 @-> Mimic.mimic @-> git_client)
|
||||
Loading…
Add table
Add a link
Reference in a new issue