summaryrefslogtreecommitdiffstats
path: root/Guix.org
diff options
context:
space:
mode:
authorjdlugosz963 <jdlugosz963@gmail.com>2022-10-04 17:10:57 +0200
committerjdlugosz963 <jdlugosz963@gmail.com>2022-10-04 17:10:57 +0200
commit4e5222fdb85c0f77bcdfba2866e815cc6afe66da (patch)
tree583dedd7df66acffd858c735b85a4da47f4100bf /Guix.org
parent79c31c7290e56f39982beed308d4b13a3d7e3c8c (diff)
downloaddotfiles-4e5222fdb85c0f77bcdfba2866e815cc6afe66da.tar.gz
dotfiles-4e5222fdb85c0f77bcdfba2866e815cc6afe66da.zip
Add managing profiles scripts
Diffstat (limited to 'Guix.org')
-rw-r--r--Guix.org77
1 files changed, 77 insertions, 0 deletions
diff --git a/Guix.org b/Guix.org
index 738fb98..db42d91 100644
--- a/Guix.org
+++ b/Guix.org
@@ -1,5 +1,82 @@
1#+TITLE: Guix Configuration file 1#+TITLE: Guix Configuration file
2 2
3* Resources
4[[https://guix.gnu.org/manual/en/html_node/index.html][guix]]
5[[https://github.com/daviwil/dotfiles/blob/master/Systems.org][daviwil/dotfiles]]
6
7* Managing profiles
8Source: [[https://github.com/daviwil/dotfiles/blob/master/Systems.org#profile-management][daviwil/dotfiles]]
9** Activate profiles
10
11#+begin_src sh :tangle bin/activate-profiles :shebang #!/bin/sh
12 # Source: https://github.com/daviwil/dotfiles/blob/master/Systems.org#profile-management
13
14 GREEN='\033[1;32m'
15 RED='\033[1;30m'
16 NC='\033[0m'
17 GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles
18
19 profiles=$*
20 if [[ $# -eq 0 ]]; then
21 profiles="$HOME/.config/guix/manifests/*.scm";
22 fi
23
24 for profile in $profiles; do
25 # Remove the path and file extension, if any
26 profileName=$(basename $profile)
27 profileName="${profileName%.*}"
28 profilePath="$GUIX_EXTRA_PROFILES/$profileName"
29 manifestPath=$HOME/.config/guix/manifests/$profileName.scm
30
31 if [ -f $manifestPath ]; then
32 echo
33 echo -e "${GREEN}Activating profile:" $manifestPath "${NC}"
34 echo
35
36 mkdir -p $profilePath
37 guix package --manifest=$manifestPath --profile="$profilePath/$profileName"
38
39 # Source the new profile
40 GUIX_PROFILE="$profilePath/$profileName"
41 if [ -f $GUIX_PROFILE/etc/profile ]; then
42 . "$GUIX_PROFILE"/etc/profile
43 else
44 echo -e "${RED}Couldn't find profile:" $GUIX_PROFILE/etc/profile "${NC}"
45 fi
46 else
47 echo "No profile found at path" $profilePath
48 fi
49 done
50
51#+end_src
52
53** Update profiles
54
55#+begin_src sh :tangle bin/update-profiles :shebang #!/bin/sh
56 # Source: https://github.com/daviwil/dotfiles/blob/master/Systems.org#profile-management
57
58 GREEN='\033[1;32m'
59 NC='\033[0m'
60 GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles
61
62 profiles=$*
63 if [[ $# -eq 0 ]]; then
64 profiles="$GUIX_EXTRA_PROFILES/*";
65 fi
66
67 for profile in $profiles; do
68 profileName=$(basename $profile)
69 profilePath=$GUIX_EXTRA_PROFILES/$profileName
70
71 echo
72 echo -e "${GREEN}Updating profile:" $profilePath "${NC}"
73 echo
74
75 guix package --profile="$profilePath/$profileName" --manifest="$HOME/.config/guix/manifests/$profileName.scm"
76 done
77
78#+end_src
79
3* Channels 80* Channels
4#+begin_src scheme :tangle .config/guix/channels.scm 81#+begin_src scheme :tangle .config/guix/channels.scm
5 (list 82 (list