[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
update-profiles.sh
From: |
Gottfried |
Subject: |
update-profiles.sh |
Date: |
Mon, 24 Apr 2023 11:22:46 +0000 |
Hi,
Sorry,
you provided me already with a script for activating all profiles at login,
I don’t know at the moment, why I have mixed it up with other things
and I didn’t use it.
------------------------------------------------------------
in the meantime all packages are available at login
through the help of Martin
------------------------------------------------------------
so I tried to use your "update-profiles.sh"
I placed it in my home directory: ~/gfp
and changed one sentence, my the place of the profiles:
update-profiles.sh
#!/bin/sh
GUIX_MANIFESTS=$HOME/sys/guix/manifests
GUIX_PROFILES=home/gfp/Projekte
for dir in $GUIX_PROFILES/*
do
name=$(basename "$dir")
manifest=$GUIX_MANIFESTS/$name.scm
profile=$dir/$name
if [ -r $manifest ]
then
guix package --manifest="$manifest" --profile="$profile"
fi
unset profile
unset manifest
unset name
done
-------------------------------------------------
but running it, it seems not doing anything.
sometimes it’s difficult for me, to know so little, not knowing what I
have to do, not knowing the basics ...
Is it connected with the other script to activate the profiles at login?
so that it doesn’t work?
I guess both scripts are independent.
or is the path to it wrong?
I have the directory
~/gfp/Projekte
and in it many directories/which are the different profiles, e.g:
Musescore, Musik, Emacs, Calibre, Gnucash, Icecat, Libreoffice,
Photoflare, Lilypond
and in each of these directories a scm.file with the same name but in
small letters like: musescore.scm, musik.scm, emacs.scm ...
Kind regards
Gottfried
I believe I already provided you with the code for updating profiles and
activating them, but here it is again for reference:
```update-profiles.sh
#!/bin/sh
GUIX_MANIFESTS=$HOME/sys/guix/manifests
GUIX_PROFILES=$HOME/sys/guix/profiles
for dir in $GUIX_PROFILES/*
do
name=$(basename "$dir")
manifest=$GUIX_MANIFESTS/$name.scm
profile=$dir/$name
if [ -r $manifest ]
then
guix package --manifest="$manifest" --profile="$profile"
fi
unset profile
unset manifest
unset name
done
```
```activate-profiles.sh
#!/bin/sh
GUIX_PROFILES=$HOME/sys/guix/profiles
for dir in $GUIX_PROFILES/*
do
name=$(basename "$dir")
profile=$dir/$name
if [ -f "$profile"/etc/profile ]
then
GUIX_PROFILE="$profile"
. "$GUIX_PROFILE"/etc/profile
export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
fi
unset profile
unset name
done
```
These scripts both loop over my manifests or profiles directories,
running the upgrade or activate commands on each one. If you want to
exclude a profile from being upgraded with this script, you can just
take away its manifest's read permissons like so:
```
chmod -r $HOME/sys/guix/manifests/my-excluded-manifest.scm
```
Good luck,
Gary
OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key
OpenPGP_signature
Description: OpenPGP digital signature
- update-profiles.sh,
Gottfried <=