#!/usr/bin/env nix-shell #! nix-shell -i bash #! nix-shell -p bash nix-output-monitor echo FIXME Not flakes ready exit 1 set -euo pipefail SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) # Parse arguments function help { echo "Usage: $0 [-h|-v|-b] profile" echo "Build Home Manager configuration on the local machine." echo echo "Arguments:" echo " profile: Home Manager profile to use" echo echo "Options:" echo " -h: Display this help message." } while getopts "h" OPTION do case "$OPTION" in h) help exit 0 ;; ?) help exit 2 ;; esac done shift "$(($OPTIND -1))" if [ "$#" -ne 1 ] then help exit 2 fi profile="$1" profile_dir="${SCRIPT_DIR}/${profile}" if [ ! -d "$profile_dir" ] then echo "Profile not found." fi home_manager_config="${profile_dir}/hm.nix" if [ ! -f "$home_manager_config" ] then echo "Home Manager configuration not found." fi set -x nom-build '' --argstr confPath "${home_manager_config}" -o "${profile_dir}/hm" set +x echo  path="$(readlink -f "${profile_dir}/hm")" echo "Manual installation instructions:" echo "- Transfer $path and dependencies to the destination machine (somehow)" echo "- Run $path/activate as the destination user" echo "- Log into the user again to make sure everything is sourced" echo "- Transfer necessary private keys (or use ssh -A for testing)" echo "- Run git-sync-init" echo "- Check that the system can build itself"