## Summary
cobra doesn't chain `PersistentPreRunE`. So if a parent declares one and
a child declares it as well, the parent function is ignored. `global`
uses `PersistentPreRunE` to set the global project directory. The
`services` command was running it to ensure nix is installed. The child
replaced the parent, so we were never setting th
The fix here is a bit ugly but it solves them problem.
There's a UX issue I rediscovered while testing this. When adding global
packages the environment is not automatically refreshed. This means
services wont work until a new shell is opened or if the user does `eval
"$(devbox global shellenv)"` manually.
## How was it tested?
```
devbox global add nginx
eval "$(devbox global shellenv)"
devbox global services up
```