Up: Správa prostredí [Contents][Index]
Guix poskytuje balík ‘direnv’, ktorým možno rozšíriť prostredie shellu po zmene priečinka. Tento nástroj sa dá využiť na prípravu čistého prostredia Guix.
Nasledovný príklad poskytuje shellovskú funkciu pre súbor ~/.direnvrc, ktorú možno použiť z Git repozitára Guixu v súbore ~/src/guix/.envrc na nastavenie vývojového prostredia podobnému tomu, ktoré je opísané v see Building from Git in GNU Guix Reference Manual.
Vytvorte súbor ~/.direnvrc obsahujúci nasledovný kód Bash:
# Vďaka <https://github.com/direnv/direnv/issues/73#issuecomment-152284914> export_function() { local name=$1 local alias_dir=$PWD/.direnv/aliases mkdir -p "$alias_dir" PATH_add "$alias_dir" local target="$alias_dir/$name" if declare -f "$name" >/dev/null; then echo "#!$SHELL" > "$target" declare -f "$name" >> "$target" 2>/dev/null # Všimnite si, že pridávame premenné shellu do spúšťača funkcie. echo "$name \$*" >> "$target" chmod +x "$target" fi } use_guix() { # Nastaviť žetón pre GitHub. export GUIX_GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # Vyčistiť „GUIX_PACKAGE_PATH“. export GUIX_PACKAGE_PATH="" # Opätovne vytvoriť koreň zberača odpadkov. gcroots="$HOME/.config/guix/gcroots" mkdir -p "$gcroots" gcroot="$gcroots/guix" if [ -L "$gcroot" ] then rm -v "$gcroot" fi # Doplnkové balíky. PACKAGES_MAINTENANCE=( direnv git git:send-email git-cal gnupg guile-colorized guile-readline less ncurses openssh xdot ) # Balíky prostredia. PACKAGES=(help2man guile-sqlite3 guile-gcrypt) # Vďaka <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html> eval "$(guix shell --search-paths --root="$gcroot" --pure \ --development guix ${PACKAGES[@]} ${PACKAGES_MAINTENANCE[@]} "$@")" # Vopred zadať voľby nastavenia. configure() { ./configure } export_function configure # Spustiť „make“ a možno niečo zostaviť. build() { make -j 2 if [ $# -gt 0 ] then ./pre-inst-env guix build "$@" fi } export_function build # Vopred zadať Git príkaz pre odoslanie zmien. push() { git push --set-upstream origin } export_function push clear # Vyčistiť obrazovku. git-cal --author='Vaše meno' # Zobraziť kalendár zmien. # Zobraziť pomocníka príkazov. echo " build zostaviť balík alebo iba projekt ak nebol poskytnutý žiaden parameter configure vykonať ./configure s predvolenými voľbami push odoslať zmeny do vzdialeného repozitára Git " }
Každý projekt obsahujúci .envrc s reťazcom use guix
bude mať
vopred pripravené premenné prostredia a funkcie.
Vykonajte direnv allow
pre prvé nastavenie prostredia.
Up: Správa prostredí [Contents][Index]