90 lines
2.2 KiB
Plaintext
90 lines
2.2 KiB
Plaintext
let C = ../rofi-extras/dhall/rofi-dev.dhall
|
|
|
|
let cryptdir = "/mnt/data/.crypt"
|
|
|
|
let sshKey = "ssh workstation"
|
|
|
|
let gpgKey = "gpg workstation"
|
|
|
|
let bwConfig =
|
|
\(k : Text) ->
|
|
C.PasswordConfig.PwdBW ({ bwKey = k, bwTries = 2 } : C.BitwardenConfig)
|
|
|
|
let sshData =
|
|
\(r : Text) ->
|
|
C.DataConfig.SSHFSConfig
|
|
( { sshfsRemote = r, sshfsPassword = None C.PasswordConfig }
|
|
: C.SSHFSData
|
|
)
|
|
|
|
let sshfsTree =
|
|
\(m : Text) ->
|
|
\(l : Text) ->
|
|
\(r : Text) ->
|
|
{ tcParent =
|
|
{ deviceMount = { mpPath = m, mpLabel = Some l } : C.MountConfig
|
|
, deviceData = sshData r
|
|
}
|
|
: C.DeviceConfig
|
|
, tcChildren = [ "ssh" ]
|
|
}
|
|
: C.TreeConfig
|
|
|
|
let crypt = \(b : Text) -> "${cryptdir}/${b}"
|
|
|
|
let vcName = \(n : Text) -> "Veracrypt (${n})"
|
|
|
|
let vcryptTree =
|
|
\(m : Text) ->
|
|
\(l : Optional Text) ->
|
|
\(v : Text) ->
|
|
\(k : Text) ->
|
|
{ tcParent =
|
|
{ deviceMount = { mpPath = m, mpLabel = l } : C.MountConfig
|
|
, deviceData =
|
|
C.DataConfig.VeracryptConfig
|
|
( { vcVolume = crypt v
|
|
, vcPassword = Some (bwConfig (vcName k))
|
|
}
|
|
: C.VeracryptData
|
|
)
|
|
}
|
|
: C.DeviceConfig
|
|
, tcChildren = [] : List Text
|
|
}
|
|
: C.TreeConfig
|
|
|
|
let defaultDevs =
|
|
[ { tKey = "ssh"
|
|
, tVal =
|
|
vcryptTree
|
|
"${env:HOME as Text}/.ssh"
|
|
(Some "ssh")
|
|
"ssh-config"
|
|
sshKey
|
|
}
|
|
, { tKey = "gnupg"
|
|
, tVal =
|
|
vcryptTree
|
|
"${env:GNUPGHOME as Text}"
|
|
(None Text)
|
|
"gpg-config"
|
|
gpgKey
|
|
}
|
|
]
|
|
|
|
let otherDevs =
|
|
[ { tKey = "ebm_snakemake"
|
|
, tVal =
|
|
sshfsTree
|
|
"ebm_snakemake"
|
|
"EBM"
|
|
"nisaba:/wrk/njd2/stratomod-experiments"
|
|
}
|
|
]
|
|
|
|
in { scTmpPath = Some "/tmp/media/${env:LOGNAME as Text}"
|
|
, scVerbose = Some False
|
|
, scDevices = defaultDevs # otherDevs
|
|
}
|