Very simplistic tool to aid with updating our nixpkgs channel pins:
This tool prints the correct two `*Hashes` sets to stdout, so you can
easily delete the appropriate lines in `third_party/nixpkgs/default.nix`,
run
    ./bin/depot-nixpkgs-update | wl-copy
and paste it into your editor.
Doing this fully automatically would be possible, but would either
a) require changing `default.nix`, so it is regex-able more easily,
b) touching something like rnix-parser which I have no motivation to
at the moment or
c) searching for the old hashes and replacing them with the new
ones. This may be a simple and worthwhile improvement in the future.
Change-Id: I4df44e3827ce9ff6e4fe2d336c08016d799e21a7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3252
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
		
	
			
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| # This script dispatches invocations transparently to programs instantiated from
 | |
| # Nix.
 | |
| #
 | |
| # To add a new tool, insert it into the case statement below by setting `attr`
 | |
| # to the key in nixpkgs which represents the program you want to run.
 | |
| set -ueo pipefail
 | |
| 
 | |
| readonly REPO_ROOT=$(dirname "$0")/..
 | |
| TARGET_TOOL=$(basename "$0")
 | |
| 
 | |
| case "${TARGET_TOOL}" in
 | |
|   age)
 | |
|     attr="third_party.age"
 | |
|     ;;
 | |
|   age-keygen)
 | |
|     attr="third_party.age"
 | |
|     ;;
 | |
|   depot-build)
 | |
|     attr="tools.depot-build"
 | |
|     ;;
 | |
|   depot-nixpkgs-update)
 | |
|     attr="tools.depot-nixpkgs-update"
 | |
|     ;;
 | |
|   gerrit)
 | |
|     attr="tools.gerrit-cli"
 | |
|     ;;
 | |
|   gerrit-update)
 | |
|     attr="tools.gerrit-update"
 | |
|     ;;
 | |
|   hash-password)
 | |
|     attr="tools.hash-password"
 | |
|     ;;
 | |
|   kontemplate)
 | |
|     attr="kontemplate"
 | |
|     ;;
 | |
|   meson)
 | |
|     attr="third_party.meson"
 | |
|     ;;
 | |
|   ninja)
 | |
|     attr="third_party.ninja"
 | |
|     ;;
 | |
|   perf-flamegraph)
 | |
|     attr="tools.perf-flamegraph"
 | |
|     ;;
 | |
|   rebuild-system)
 | |
|     attr="ops.nixos.rebuild-system"
 | |
|     ;;
 | |
|   rebuilder)
 | |
|     attr="users.tazjin.nixos.rebuilder"
 | |
|     ;;
 | |
|   rink)
 | |
|     attr="third_party.rink"
 | |
|     ;;
 | |
|   stern)
 | |
|     attr="third_party.stern"
 | |
|     ;;
 | |
|   *)
 | |
|     echo "The tool '${TARGET_TOOL}' is currently not installed in this repository."
 | |
|     exit 1
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| result=$(nix-build --no-out-link --attr "${attr}" "${REPO_ROOT}")
 | |
| PATH="${result}/bin:$PATH"
 | |
| 
 | |
| exec "${TARGET_TOOL}" "${@}"
 |