Files
brent saner 8e70ffac38 v1.16.3
ADDED:
* envs.MustEnv(), envs.MustEnvNoBlank()

UPDATED:
* dep mods, Go version
2026-07-09 19:32:21 -04:00

69 lines
2.2 KiB
Plaintext

- refactor the elevation detection stuff. I'm not terribly happy with it.
- add generic password prompt func that takes in a `prompt []byte` param and returns `(passwd []byte, err error)`
```
func getPasswd(prompt []byte) (passwd []byte, err error) {
var b []byte
var newLnd bool
var origIn *term.State
var origOut *term.State
var fdIn int = int(os.Stdin.Fd())
var fdOut int = int(os.Stdout.Fd())
if origIn, err = term.GetState(fdIn); err != nil {
return
}
if origOut, err = term.GetState(fdOut); err != nil {
return
}
defer func() {
var tErr error
if !newLnd {
fmt.Println()
}
if tErr = term.Restore(fdIn, origIn); tErr != nil {
return
}
if tErr = term.Restore(fdOut, origOut); tErr != nil {
return
}
}()
os.Stdout.Write(prompt)
if b, err = term.ReadPassword(fdIn); err != nil {
return
}
passwd = b
fmt.Println()
newLnd = true
return
}
```
- password generator/hash+salter and "checksum/hash guesser" utility/library
-- incorporate with r00t2.io/pwgen
-- incorporate with https://github.com/tredoe/osutil ?
-- cli flag to dump flat hashes too (https://github.com/hlandau/passlib and others soon in pwgen)
- auger needs to be build-constrained to linux.
-- (i think i fixed this)
- unit tests
- constants/vars for errors
- func and struct to return segregated system-level env vars vs. user env vars (mostly usable on windows) (see envs/.TODO.go.UNFINISHED)
- validator for windows usernames, domains, etc. (for *NIX, https://unix.stackexchange.com/a/435120/284004)
-- https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/naming-conventions-for-computer-domain-site-ou
-- https://support.microsoft.com/en-us/topic/2dc5c4b9-0881-2e0a-48df-f120493a2d3e
-- https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/-2000-server/cc959336(v=technet.10)?redirectedfrom=MSDN
-- https://stackoverflow.com/questions/33078854/what-is-the-regex-for-windows-domain-username-in-c
- finish net