#!/bin/sh NIXOS_VERSION=20.03 fetch() { rev=$1 output=$2 url=${3:-https://github.com/NixOS/nixpkgs-channels.git} printf "\033[1m$url\033[0m $rev\n" nix-prefetch-git \ --url "${url}" \ --rev "${rev}" \ > "${output}" } nixpkgs() { fetch "refs/heads/nixos-$NIXOS_VERSION" .versions/nixpkgs.json } nixpkgs_unstable() { fetch "refs/heads/nixos-unstable" .versions/nixpkgs-unstable.json } home_manager() { fetch "refs/heads/release-$NIXOS_VERSION" .versions/home-manager.json "https://github.com/rycee/home-manager.git" } krops() { fetch "refs/tags/v1.21.0" .versions/krops.json "https://cgit.krebsco.de/krops" } stockholm() { fetch "ea5b591d065b721666fc3527ad45a7545a594a77" .versions/stockholm.json "https://cgit.krebsco.de/stockholm" } usage() { echo >&2 "Usage: $0 [--all | REPO... ] Where REPO is one of nixpkgs, home-manager, krops, stockholm" exit 1 } if [ $# -eq 0 ]; then usage else for arg in "$@"; do case $arg in nixpkgs) nixpkgs & nixpkgs_unstable & ;; home-manager) home_manager & ;; krops) krops & ;; stockholm) stockholm & ;; --all) nixpkgs & nixpkgs_unstable & home_manager & krops & stockholm & ;; *) usage ;; esac shift done wait fi