mirror of
https://github.com/nix-community/home-manager.git
synced 2025-12-07 01:21:03 +01:00
Add initial section of activation script
The initial section creates some useful variables for use by later activation sections.
This commit is contained in:
parent
8ce389ce2a
commit
f35b9a9970
3 changed files with 51 additions and 45 deletions
46
modules/activation-init.sh
Executable file
46
modules/activation-init.sh
Executable file
|
|
@ -0,0 +1,46 @@
|
|||
function setupVars() {
|
||||
local profilesPath="/nix/var/nix/profiles/per-user/$USER"
|
||||
local gcPath="/nix/var/nix/gcroots/per-user/$USER"
|
||||
local greatestGenNum
|
||||
|
||||
greatestGenNum=$( \
|
||||
find "$profilesPath" -name 'home-manager-*-link' \
|
||||
| sed 's/^.*-\([0-9]*\)-link$/\1/' \
|
||||
| sort -rn \
|
||||
| head -1)
|
||||
|
||||
if [[ -n "$greatestGenNum" ]] ; then
|
||||
oldGenNum=$greatestGenNum
|
||||
newGenNum=$((oldGenNum + 1))
|
||||
else
|
||||
newGenNum=1
|
||||
fi
|
||||
|
||||
if [[ -e "$gcPath/current-home" ]] ; then
|
||||
oldGenPath="$(readlink -e "$gcPath/current-home")"
|
||||
fi
|
||||
|
||||
newGenPath="@GENERATION_DIR@";
|
||||
newGenProfilePath="$profilesPath/home-manager-$newGenNum-link"
|
||||
newGenGcPath="$gcPath/current-home"
|
||||
}
|
||||
|
||||
setupVars
|
||||
|
||||
echo "Starting home manager activation"
|
||||
|
||||
if [[ $DRY_RUN ]] ; then
|
||||
echo "This is a dry run"
|
||||
export DRY_RUN_CMD=echo
|
||||
else
|
||||
echo "This is a live run"
|
||||
unset DRY_RUN_CMD
|
||||
fi
|
||||
|
||||
echo "Activation variables:"
|
||||
echo " oldGenNum=$oldGenNum"
|
||||
echo " newGenNum=$newGenNum"
|
||||
echo " oldGenPath=$oldGenPath"
|
||||
echo " newGenPath=$newGenPath"
|
||||
echo " newGenProfilePath=$newGenProfilePath"
|
||||
echo " newGenGcPath=$newGenGcPath"
|
||||
Loading…
Add table
Add a link
Reference in a new issue