commit | 9440e2c5f3f6be7e82bd935f5dbae949063af08d | [log] [tgz] |
---|---|---|
author | Leigh McCulloch <leigh@mcchouse.com> | Tue Jun 21 00:02:50 2016 -0700 |
committer | Leigh McCulloch <leigh@mcchouse.com> | Tue Jun 21 00:22:27 2016 -0700 |
tree | 3cd0e9f7888f9bc09cbd8594ddfe29a17acd7430 | |
parent | 1111e456ffea841564ac0fa5f69c26ef44dafec9 [diff] |
Use path/filepath over hardcoded path separators. What === Change tests to use `path/filepath` instead of `fmt` and hardcoded `/` path separators. Why === Joining paths with `/` causes the tests to fail when run on windows because it's file path separator is `\`. Using `path/filepath` allows the code to join paths together using the system path separator without the code needing to know what the separator is.
This is a Go library for detecting the user's home directory without the use of cgo, so the library can be used in cross-compilation environments.
Usage is incredibly simple, just call homedir.Dir()
to get the home directory for a user, and homedir.Expand()
to expand the ~
in a path to the home directory.
Why not just use os/user
? The built-in os/user
package requires cgo on Darwin systems. This means that any Go code that uses that package cannot cross compile. But 99% of the time the use for os/user
is just to retrieve the home directory, which we can do for the current user without cgo. This library does that, enabling cross-compilation.