90 lines
2.3 KiB
Plaintext
90 lines
2.3 KiB
Plaintext
let C = ../rofi-extras/dhall/rofi-dev.dhall
|
|
|
|
let cryptdir = "${env:HOME as Text}/.crypt"
|
|
|
|
let sshKey = "ssh nanobarbie"
|
|
|
|
let gpgKey = "gpg nanobarbie"
|
|
|
|
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 = "nisaba-wrk"
|
|
, tVal = sshfsTree "nisaba_wrk" "nisaba_wrk" "nisaba:/wrk/njd2"
|
|
}
|
|
, { tKey = "nist-dvl"
|
|
, tVal =
|
|
sshfsTree "nist_dvl" "nist_dvl" "nist-workstation:/mnt/data/Dvl"
|
|
}
|
|
]
|
|
|
|
in { scTmpPath = Some "/tmp/media/${env:LOGNAME as Text}"
|
|
, scVerbose = Some False
|
|
, scDevices = defaultDevs # otherDevs
|
|
}
|