67 lines
1.6 KiB
Plaintext
67 lines
1.6 KiB
Plaintext
|
let MountConfig = { mpPath : Text, mpLabel : Optional Text }
|
||
|
|
||
|
let BitwardenConfig = { bwKey : Text, bwTries : Natural }
|
||
|
|
||
|
let SecretMap = { sKey : Text, sVal : Text }
|
||
|
|
||
|
let SecretConfig = { secretAttributes : List SecretMap }
|
||
|
|
||
|
let PromptConfig = { promptTries : Natural }
|
||
|
|
||
|
let PasswordConfig =
|
||
|
< PwdBW : BitwardenConfig | PwdLS : SecretConfig | PwdPr : PromptConfig >
|
||
|
|
||
|
let SSHFSData = { sshfsRemote : Text, sshfsPassword : Optional PasswordConfig }
|
||
|
|
||
|
let CIFSOpts =
|
||
|
{ cifsoptsUsername : Optional Text
|
||
|
, cifsoptsWorkgroup : Optional Text
|
||
|
, cifsoptsUID : Optional Natural
|
||
|
, cifsoptsGID : Optional Natural
|
||
|
, cifsoptsIocharset : Optional Text
|
||
|
}
|
||
|
|
||
|
let CIFSData =
|
||
|
{ cifsRemote : Text
|
||
|
, cifsSudo : Bool
|
||
|
, cifsPassword : Optional PasswordConfig
|
||
|
, cifsOpts : Optional CIFSOpts
|
||
|
}
|
||
|
|
||
|
let VeracryptData = { vcVolume : Text, vcPassword : Optional PasswordConfig }
|
||
|
|
||
|
let DataConfig =
|
||
|
< VeracryptConfig : VeracryptData
|
||
|
| SSHFSConfig : SSHFSData
|
||
|
| CIFSConfig : CIFSData
|
||
|
>
|
||
|
|
||
|
let DeviceConfig = { deviceMount : MountConfig, deviceData : DataConfig }
|
||
|
|
||
|
let TreeConfig = { tcParent : DeviceConfig, tcChildren : List Text }
|
||
|
|
||
|
let TreeMap = { tKey : Text, tVal : TreeConfig }
|
||
|
|
||
|
let StaticConfig =
|
||
|
{ scTmpPath : Optional Text
|
||
|
, scVerbose : Optional Bool
|
||
|
, scDevices : List TreeMap
|
||
|
}
|
||
|
|
||
|
in { StaticConfig
|
||
|
, TreeConfig
|
||
|
, DeviceConfig
|
||
|
, DataConfig
|
||
|
, VeracryptData
|
||
|
, CIFSData
|
||
|
, CIFSOpts
|
||
|
, SSHFSData
|
||
|
, PasswordConfig
|
||
|
, SecretConfig
|
||
|
, MountConfig
|
||
|
, BitwardenConfig
|
||
|
, PromptConfig
|
||
|
, TreeMap
|
||
|
, SecretMap
|
||
|
}
|