help-guix
[Top][All Lists]
Advanced

[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


Attachment: OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]