92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   fetchFromGitHub,
 | |
|   fetchzip,
 | |
|   rustPlatform,
 | |
|   eyed3,
 | |
|   flac,
 | |
|   imagemagick,
 | |
|   intermodal,
 | |
|   lame,
 | |
|   makeBinaryWrapper,
 | |
|   sox,
 | |
|   writableTmpDirAsHomeHook,
 | |
| }:
 | |
| let
 | |
|   runtimeDeps = [
 | |
|     eyed3
 | |
|     flac
 | |
|     intermodal
 | |
|     imagemagick
 | |
|     lame
 | |
|     sox
 | |
|   ];
 | |
| 
 | |
|   testSampleContent = fetchzip {
 | |
|     url = "https://archive.org/download/tennyson-discography_/Tennyson%20-%20With%20You%20-%20Lay-by.zip";
 | |
|     hash = "sha256-/MgnOgn+OSPPg9wkJ32hq+1MXDdW+Qo9MqLtZMLQYBY=";
 | |
|     stripRoot = false;
 | |
|   };
 | |
| in
 | |
| rustPlatform.buildRustPackage (finalAttrs: {
 | |
|   pname = "caesura";
 | |
|   version = "0.25.2";
 | |
| 
 | |
|   src = fetchFromGitHub {
 | |
|     owner = "RogueOneEcho";
 | |
|     repo = "caesura";
 | |
|     tag = "v${finalAttrs.version}";
 | |
|     hash = "sha256-rpaOFmD/0/c5F6TIS7vGn7G3+rLOoBZKMW/HuzroUxM=";
 | |
|   };
 | |
| 
 | |
|   cargoHash = "sha256-agdhYEhhw3gMdZmYiQZVeLARkMsYQ/AWLTrpiaH0mtA=";
 | |
| 
 | |
|   nativeBuildInputs = [
 | |
|     makeBinaryWrapper
 | |
|   ];
 | |
| 
 | |
|   postPatch = ''
 | |
|     substituteInPlace Cargo.toml \
 | |
|       --replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
 | |
|   '';
 | |
| 
 | |
|   checkFlags = [
 | |
|     # Those test need internet access for its `Source` (i.e: tracker)
 | |
|     "--skip=commands::spectrogram::tests::spectrogram_command_tests::spectrogram_command"
 | |
|     "--skip=commands::transcode::tests::transcode_command_tests::transcode_command"
 | |
|     "--skip=utils::source::tests::source_provider_tests::source_provider"
 | |
|   ];
 | |
| 
 | |
|   preCheck = ''
 | |
|     # From samples/download-sample
 | |
|     mkdir samples/content/
 | |
|     ln -s ${finalAttrs.passthru.testSampleContent} "samples/content/Tennyson - With You (2014) [Digital] "'{'"16-44.1 Bandcamp"'}'" (FLAC)"
 | |
|     # Adapted from .github/workflows/on-push.yml
 | |
|     tee config.yml <<EOF
 | |
|     announce_url: https://flacsfor.me/YOUR_ANNOUNCE_KEY/announce
 | |
|     api_key: YOUR_API_KEY
 | |
|     content:
 | |
|     - samples/content
 | |
|     source: $(mktemp -d)
 | |
|     verbosity: trace
 | |
|     EOF
 | |
|   '';
 | |
| 
 | |
|   postInstall = ''
 | |
|     wrapProgram $out/bin/caesura \
 | |
|       --prefix PATH : ${lib.makeBinPath finalAttrs.passthru.runtimeDeps}
 | |
|   '';
 | |
| 
 | |
|   passthru = {
 | |
|     inherit runtimeDeps testSampleContent;
 | |
|   };
 | |
| 
 | |
|   meta = {
 | |
|     description = "versatile command line tool for automated verifying and transcoding of all your torrents";
 | |
|     homepage = "https://github.com/RogueOneEcho/caesura";
 | |
|     license = lib.licenses.agpl3Only;
 | |
|     maintainers = with lib.maintainers; [ ambroisie ];
 | |
|     mainProgram = "caesura";
 | |
|   };
 | |
| })
 | 
