108 lines
2.9 KiB
Cheetah
108 lines
2.9 KiB
Cheetah
let cryptdir =
|
|
{{ if eq .features.rofi_alias "laptop" -}}
|
|
"/mnt/data/Documents/.crypt"
|
|
{{- else if eq .features.rofi_alias "workstation" -}}
|
|
"/mnt/data/.crypt"
|
|
{{- else -}}
|
|
"~/.crypt"
|
|
{{- end }}
|
|
|
|
let sshKey =
|
|
{{ if eq .features.rofi_alias "workstation" -}}
|
|
"ssh workstation"
|
|
{{- else -}}
|
|
"ssh"
|
|
{{- end }}
|
|
|
|
let gpgKey =
|
|
{{ if eq .features.rofi_alias "workstation" -}}
|
|
"gpg workstation"
|
|
{{- else -}}
|
|
"gpg"
|
|
{{- end }}
|
|
|
|
let bwConfig =
|
|
\(k : Text) ->
|
|
PasswordConfig.PwdBW ({ bwKey = k, bwTries = +2 } : BitwardenConfig)
|
|
|
|
let sshData =
|
|
\(r : Text) ->
|
|
DataConfig.SSHFSConfig
|
|
({ sshfsRemote = r, sshfsPassword = None PasswordConfig } : SSHFSData)
|
|
|
|
let sshfsTree =
|
|
\(m : Text) ->
|
|
\(l : Text) ->
|
|
\(r : Text) ->
|
|
{ tcParent =
|
|
{ deviceMount = { mpPath = m, mpLabel = Some l } : MountConfig
|
|
, deviceData = sshData r
|
|
}
|
|
: DeviceConfig
|
|
, tcChildren = [ "ssh" ]
|
|
}
|
|
: 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 } : MountConfig
|
|
, deviceData =
|
|
DataConfig.VeracryptConfig
|
|
( { vcVolume = crypt v
|
|
, vcPassword = Some (bwConfig (vcName k))
|
|
}
|
|
: VeracryptData
|
|
)
|
|
}
|
|
: DeviceConfig
|
|
, tcChildren = [] : List Text
|
|
}
|
|
: TreeConfig
|
|
|
|
let defaultDevs =
|
|
{ ssh =
|
|
vcryptTree "${env:HOME as Text}/.ssh" (Some "ssh") "ssh-config" sshKey
|
|
, gnupg =
|
|
vcryptTree "${env:GNUPGHOME as Text}" (None Text) "gpg-config" gpgKey
|
|
}
|
|
|
|
let otherDevs =
|
|
{{- if eq .features.rofi_alias "laptop" -}}
|
|
{ accounts = vcryptTree "accounts" (None Text) "accounts" "accounts"
|
|
, ansible-pki =
|
|
vcryptTree "ansible-pki" (None Text) "ansible" "Ansible PKI"
|
|
, call_logs = vcryptTree "call-logs" (None Text) "call_logs" "ACR"
|
|
, ebm_snakemake =
|
|
sshfsTree "ebm_snakemake" "EBM" "nisaba:/aigenomics/EBM_dev/snakemake"
|
|
, music =
|
|
sshfsTree
|
|
"/mnt/data/Music"
|
|
"Music"
|
|
"portnoy4prez:/mnt/data/home/Music"
|
|
, videos =
|
|
sshfsTree
|
|
"/mnt/data/Videos"
|
|
"Videos"
|
|
"portnoy4prez:/mnt/data/home/Videos"
|
|
}
|
|
{{- else if eq .features.rofi_alias "workstation" -}}
|
|
{ ebm_snakemake =
|
|
sshfsTree "ebm_snakemake" "EBM" "nisaba:/aigenomics/EBM_dev/snakemake"
|
|
}
|
|
{{- else -}}
|
|
{=}
|
|
{{- end }}
|
|
|
|
in { scTmpPath = Some "/tmp/media/${env:LOGNAME as Text}"
|
|
, scVerbose = Some False
|
|
, scDevices = toMap (defaultDevs /\ otherDevs)
|
|
}
|