jetify-com / devbox

Instant, easy, and predictable development environments
https://www.jetify.com/devbox/
Apache License 2.0
8.27k stars 193 forks source link

best way to get store path for resource #1813

Open sstarcher opened 6 months ago

sstarcher commented 6 months ago

What problem are you trying to solve?

Tools like antigen need to be sourced from your shell config.

My current method is the following and wanting to see if a better way exists

What solution would you like?

some built in easy way to access paths

Alternatives you've considered

antigen_path=$(cat .local/share/devbox/global/default/devbox.lock | jq -r '.packages."antigen@latest".systems."x86_64-linux".store_path') source "${antigen_path}/share/antigen/antigen.zsh"

Lagoja commented 6 months ago

The binaries and contents of the Nix package are also symlinked in a global directory within your Devbox Global directory. You can access that file using:

source $DEVBOX_GLOBAL_PREFIX/share/antigen/antigen.zsh
sstarcher commented 6 months ago

$DEVBOX_GLOBAL_PREFIX returns nothing while I'm in my global shell.

❯ env | grep DEVBOX | cut -d= -f1
DEVBOX_CONFIG_DIR
DEVBOX_INIT_PATH
DEVBOX_NIX_ENV_PATH_179252a935a77cf6dd326dd0ddb3dbe440ea6b902264dc0468c024c617c76d2c
DEVBOX_PACKAGES_DIR
DEVBOX_PATH_STACK
DEVBOX_PROJECT_ROOT
DEVBOX_SYSTEM_BASH
DEVBOX_SYSTEM_SED
__DEVBOX_SHELLENV_HASH_179252a935a77cf6dd326dd0ddb3dbe440ea6b902264dc0468c024c617c76d2c
DEVBOX_REFRESH_ALIAS_179252a935a77cf6dd326dd0ddb3dbe440ea6b902264dc0468c024c617c76d2c
Lagoja commented 6 months ago

returns nothing while I'm in my global shell.

How are you activating your global shell? Are you running eval "$(devbox global shellenv --init-hook)" in your zshrc?

Another option you could try is:

$(devbox global path)/.devbox/nix/profile/default/share/antigen/antigen.zsh
sstarcher commented 6 months ago

I was using eval "$(devbox global shellenv)"

This looks to work $(devbox global path)/.devbox/nix/profile/default/share/antigen/antigen.zsh

sstarcher commented 6 months ago

I'm using eval "$(devbox global shellenv)"

This does work $(devbox global path)/.devbox/nix/profile/default/share/antigen/antigen.zsh