let C = ../rofi-extras/dhall/rofi-dev.dhall let cryptdir = "${env:HOME as Text}/Documents/.crypt" let sshKey = "ssh nanobarbie" let gpgKey = "gpg nanobarbie" let bwConfig = \(k : Text) -> C.PasswordConfig.PwdBW C.BitwardenConfig::{ bwKey = k } let sshData = \(r : Text) -> C.DataConfig.SSHFSConfig C.SSHFSData::{ sshfsRemote = r } let sshfsEntry = \(l : Text) -> \(m : Text) -> \(r : Text) -> { tKey = l , tVal = { tcParent = { deviceMount = { mpPath = m, mpLabel = Some l } , deviceData = sshData r } , tcChildren = [ "ssh" ] } } : C.TreeMap let crypt = \(b : Text) -> "${cryptdir}/${b}" let vcName = \(n : Text) -> "Veracrypt (${n})" let vcryptEntry = \(l : Text) -> \(m : Text) -> \(v : Text) -> \(k : Text) -> { tKey = l , tVal = C.TreeConfig::{ , tcParent = { deviceMount = { mpPath = m, mpLabel = Some l } , deviceData = C.DataConfig.VeracryptConfig { vcVolume = v, vcPassword = Some (bwConfig (vcName k)) } } } } : C.TreeMap let cifsEntry = \(l : Text) -> \(m : Text) -> \(r : Text) -> \(o : Optional C.CIFSOpts.Type) -> { tKey = l , tVal = C.TreeConfig::{ , tcParent = { deviceMount = { mpPath = m, mpLabel = Some l } , deviceData = C.DataConfig.CIFSConfig { cifsRemote = r , cifsSudo = True , cifsPassword = Some (C.PasswordConfig.PwdPr C.PromptConfig::{=}) , cifsOpts = o } } } } let devs = [ vcryptEntry "ssh" "${env:HOME as Text}/.ssh" (crypt "ssh-config-nanobarbie") sshKey , vcryptEntry "gnupg" "${env:GNUPGHOME as Text}" (crypt "gpg-config") gpgKey , vcryptEntry "pii" "pii" (crypt "pii") "work vault" , sshfsEntry "nisaba_wrk" "nisaba_wrk" "nisaba:/wrk/njd2" , sshfsEntry "nist_dvl" "nist_dvl" "nist-workstation:/mnt/data/Dvl" , cifsEntry "flowILS" "flowILS" "//elwood.nist.gov/63_MML/63internal/Flow ILS Share" ( Some C.CIFSOpts::{ , cifsoptsUsername = Some "njd2" , cifsoptsUID = Some 69444 , cifsoptsGID = Some 36679 } ) , cifsEntry "flowBBD" "flowBBD" "//Resdata-smb.nist.gov/Div-Shares/644-BBD/644-Flow-Cytometry" ( Some C.CIFSOpts::{ , cifsoptsUsername = Some "njd2" , cifsoptsUID = Some 69444 , cifsoptsGID = Some 36679 , cifsoptsDomain = Some "NIST" } ) ] in C.StaticConfig::{ scDevices = devs }