2023-09-29 22:09:13 -04:00
|
|
|
let C = ../rofi-extras/dhall/rofi-dev.dhall
|
|
|
|
|
|
|
|
let cryptdir = "/mnt/data/Documents/.crypt"
|
|
|
|
|
|
|
|
let sshKey = "ssh"
|
|
|
|
|
|
|
|
let gpgKey = "gpg"
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|
2024-03-01 20:15:27 -05:00
|
|
|
, { tKey = "journal"
|
|
|
|
, tVal =
|
|
|
|
vcryptTree
|
2024-03-30 13:51:20 -04:00
|
|
|
"/mnt/data/Org/journal"
|
2024-03-01 20:15:27 -05:00
|
|
|
(Some "journal")
|
|
|
|
"org-journal"
|
|
|
|
"org_journal"
|
|
|
|
}
|
2023-09-29 22:09:13 -04:00
|
|
|
]
|
|
|
|
|
|
|
|
let otherDevs =
|
|
|
|
[ { tKey = "accounts"
|
|
|
|
, tVal = vcryptTree "accounts" (None Text) "accounts" "accounts"
|
|
|
|
}
|
|
|
|
, { tKey = "ansible-pki"
|
|
|
|
, tVal = vcryptTree "ansible-pki" (None Text) "ansible" "Ansible PKI"
|
|
|
|
}
|
|
|
|
, { tKey = "call_logs"
|
|
|
|
, tVal = vcryptTree "call-logs" (None Text) "call_logs" "ACR"
|
|
|
|
}
|
|
|
|
, { tKey = "ebm_snakemake"
|
|
|
|
, tVal =
|
|
|
|
sshfsTree
|
|
|
|
"ebm_snakemake"
|
|
|
|
"EBM"
|
|
|
|
"nisaba:/wrk/njd2/stratomod-experiments"
|
|
|
|
}
|
|
|
|
, { tKey = "nist_workstation"
|
|
|
|
, tVal =
|
|
|
|
sshfsTree
|
|
|
|
"nist_workstation"
|
|
|
|
"NIST Workstation"
|
|
|
|
"nist-workstation:/mnt/data"
|
|
|
|
}
|
|
|
|
, { tKey = "music"
|
|
|
|
, tVal =
|
|
|
|
sshfsTree
|
|
|
|
"/mnt/data/Music"
|
|
|
|
"Music"
|
|
|
|
"portnoy4prez:/mnt/data/home/Music"
|
|
|
|
}
|
|
|
|
, { tKey = "videos"
|
|
|
|
, tVal =
|
|
|
|
sshfsTree
|
|
|
|
"/mnt/data/Videos"
|
|
|
|
"Videos"
|
|
|
|
"portnoy4prez:/mnt/data/home/Videos"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
in { scTmpPath = Some "/tmp/media/${env:LOGNAME as Text}"
|
|
|
|
, scVerbose = Some False
|
|
|
|
, scDevices = defaultDevs # otherDevs
|
|
|
|
}
|