FSharp.Management icon indicating copy to clipboard operation
FSharp.Management copied to clipboard

Support for libral

Open baronfel opened this issue 7 years ago • 0 comments

Description

I came across this libral project the other day and it seems like a decent candidate for a type provider, similar to powershell but for linux systems specifically. I'm not sure how much penetration it has, but it seems like an interesting idea.

In a nutshell, we could either invoke the ralsh executeable to discover things about a (possibly remote) system, or we could use p/invoke bindings to libral locally to do the same, and support an interface like:

let ral = Ral(target= "external hostname", sudo=true)
ral.Providers.User.Resource.User.List()
|> Seq.iter (fun u -> sprintf "%s-%s" u.Name u.Group)

ral.Providers.User.Resource.User.Add(User("chet", "sudoers"))

things like that. This is a good target for a type provider because the set of providers, the kinds of resources, and the operations that can be done on the resources are highly dynamic.

baronfel avatar Feb 07 '18 18:02 baronfel