Created
October 30, 2014 12:50
-
-
Save DamienCassou/bce633bba3eb1dfada1f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function nixos-cleanup-safe () { | |
df -h / | |
nix-collect-garbage | |
df -h / | |
sudo nix-store --optimise | |
df -h / | |
} | |
function nixos-garbage-add-root () { | |
sudo ln -s $1 /nix/var/nix/gcroots/ | |
} | |
# Update ~/nixpkgs git repository based on what is the latest nixos unstable: | |
# - the git 'basesystem' branch is the branch always pointing to nixos unstable | |
# - the git 'system' branch is based on 'basesystem' and adds my own stuff on top | |
function nixos-update () { | |
sudo nix-channel --update 1>/dev/null 2>&1 | |
newref=$(cut -d'.' -f2 /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/svn-revision) | |
cd ~/nixpkgs | |
oldref=$(git rev-parse --verify refs/heads/basesystem) | |
[[ "$oldref" = "$newref"* ]] | |
samep=$? | |
currentbranch=$(git symbolic-ref --short HEAD 2>/dev/null) | |
echo Current unstable branch is at: $newref | |
echo Old stable branch was at: $oldref | |
if [[ $samep != 0 ]]; then | |
# there is an update | |
echo There is a difference | |
echo updating ~/nixpkgs basesystem revision | |
git fetch --all --quiet | |
git update-ref refs/heads/basesystem $newref | |
echo updating ~/nixpkgs system revision | |
git-dirty-p && echo "Dirty current working directory, quitting" && return 0 | |
currentbranch=$(git symbolic-ref --short HEAD 2>/dev/null) | |
[[ $currentbranch != "system" ]] && echo "Not in 'system' branch, quitting" && return 0 | |
git rebase basesystem | |
else | |
echo There are no difference | |
fi | |
} | |
function nixos-build () { | |
sudo nixos-rebuild build -I nixpkgs=/home/cassou/nixpkgs -I nixos=/home/cassou/nixpkgs/nixos | |
} | |
function nixos-switch () { | |
sudo nixos-rebuild switch -I nixpkgs=/home/cassou/nixpkgs -I nixos=/home/cassou/nixpkgs/nixos | |
} | |
function git-dirty-p { | |
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] | |
return $? | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment