53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  rustPlatform,
 | 
						|
  fetchFromGitHub,
 | 
						|
  installShellFiles,
 | 
						|
  stdenv,
 | 
						|
}:
 | 
						|
 | 
						|
rustPlatform.buildRustPackage rec {
 | 
						|
  pname = "typical";
 | 
						|
  version = "0.12.1";
 | 
						|
 | 
						|
  src = fetchFromGitHub {
 | 
						|
    owner = "stepchowfun";
 | 
						|
    repo = "typical";
 | 
						|
    rev = "v${version}";
 | 
						|
    hash = "sha256-y7PWTzD9+rkC4wZYhecmDTa3AoWl4Tgh7QXbSK4Qq5Q=";
 | 
						|
  };
 | 
						|
 | 
						|
  useFetchCargoVendor = true;
 | 
						|
  cargoHash = "sha256-+SnwxmNQDj6acr2nEKJkNmR5PqnTIvyMApyZOmCld2U=";
 | 
						|
 | 
						|
  nativeBuildInputs = [
 | 
						|
    installShellFiles
 | 
						|
  ];
 | 
						|
 | 
						|
  preCheck = ''
 | 
						|
    export NO_COLOR=true
 | 
						|
  '';
 | 
						|
 | 
						|
  patches = [
 | 
						|
    # Related to https://github.com/stepchowfun/typical/pull/501
 | 
						|
    # Committing a slightly different patch because the upstream one doesn't apply cleanly
 | 
						|
    ./lifetime.patch
 | 
						|
  ];
 | 
						|
 | 
						|
  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
 | 
						|
    installShellCompletion --cmd typical \
 | 
						|
      --bash <($out/bin/typical shell-completion bash) \
 | 
						|
      --fish <($out/bin/typical shell-completion fish) \
 | 
						|
      --zsh <($out/bin/typical shell-completion zsh)
 | 
						|
  '';
 | 
						|
 | 
						|
  meta = with lib; {
 | 
						|
    description = "Data interchange with algebraic data types";
 | 
						|
    mainProgram = "typical";
 | 
						|
    homepage = "https://github.com/stepchowfun/typical";
 | 
						|
    changelog = "https://github.com/stepchowfun/typical/blob/${src.rev}/CHANGELOG.md";
 | 
						|
    license = licenses.mit;
 | 
						|
    maintainers = with maintainers; [ figsoda ];
 | 
						|
  };
 | 
						|
}
 |