# GNU Guix --- Functional package management for GNU # Copyright © 2021-2023 Andrew Tropin # Copyright © 2021 Oleg Pykhalov # Copyright © 2022, 2023 Ludovic Courtès # # This file is part of GNU Guix. # # GNU Guix is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # GNU Guix is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see . # # Test the 'guix home' using the external store, if any. # set -e guix home --version container_supported () { if guile -c '((@ (guix scripts environment) assert-container-features))' then return 0 else return 1 fi } localstatedir="$(guile -c '(
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/services/mcron.scm')
0 files changed, 0 insertions, 0 deletions
echo "# This file will be overridden and backed up." > "$HOME/.bashrc" mkdir "$HOME/.config" echo "This file will be overridden too." > "$HOME/.config/test.conf" echo "This file will stay around." > "$HOME/.config/random-file" guix home reconfigure "${test_directory}/home.scm" test -d "${HOME}/.guix-home" test -h "${HOME}/.bash_profile" test -h "${HOME}/.bashrc" grep 'alias run="guix shell"' "$HOME/.bashrc" grep "alias path='echo \$PATH'" "$HOME/.bashrc" test "$(tail -n 2 "${HOME}/.bashrc")" == "\ # dot-bashrc test file for guix home # the content of bashrc-test-config.sh" grep -q "the content of ~/.config/test.conf" "${HOME}/.config/test.conf" grep '^export PS1="\$GUIX_ENVIRONMENT λ "$' "${HOME}/.bash_profile" ( . "${HOME}/.guix-home/setup-environment"; test "$TODAY" = "26 messidor" ) ( . "${HOME}/.guix-home/setup-environment"; test "$LITERAL" = '${abc}' ) ( . "${HOME}/.guix-home/setup-environment"; test "$STRING_WITH_ESCAPES" = "chars: \" /\\") ( . "${HOME}/.guix-home/setup-environment"; echo "$SHELL" | grep "/gnu/store/.*/bin/bash" ) # This one should still be here. grep "stay around" "$HOME/.config/random-file" # Make sure preexisting files were backed up. grep "overridden" "$HOME"/*guix-home*backup/.bashrc grep "overridden" "$HOME"/*guix-home*backup/.config/test.conf rm -r "$HOME"/*guix-home*backup # # Test 'guix home describe'. # configuration_file() { guix home describe \ | grep 'configuration file:' \ | cut -d : -f 2 \ | xargs echo } test "$(cat "$(configuration_file)")" == "$(cat home.scm)" canonical_file_name() { guix home describe \ | grep 'canonical file name:' \ | cut -d : -f 2 \ | xargs echo } test "$(canonical_file_name)" == "$(readlink "${HOME}/.guix-home")" # # Configure a new generation. # # Change the bashrc snippet content and comment out one service. sed -i "home.scm" -e's/the content of/the NEW content of/g' sed -i "home.scm" -e"s/(simple-service 'test-config/#;(simple-service 'test-config/g" guix home reconfigure "${test_directory}/home.scm" test "$(tail -n 2 "${HOME}/.bashrc")" == "\ # dot-bashrc test file for guix home # the NEW content of bashrc-test-config.sh" # This file must have been removed and not backed up. test ! -e "$HOME/.config/test.conf" test ! -e "$HOME"/*guix-home*backup/.config/test.conf test "$(cat "$(configuration_file)")" == "$(cat home.scm)" test "$(canonical_file_name)" == "$(readlink "${HOME}/.guix-home")" test $(guix home list-generations | grep "^Generation" | wc -l) -eq 2 # # Test 'guix home search'. # guix home search mcron | grep "^name: home-mcron" guix home search scheduling daemon | grep "^name: home-mcron" )