This repository has no description
1.7 kB
65 lines
1{
2 lib,
3 fetchFromGitHub,
4 swift,
5 swiftpm,
6 swiftPackages,
7 nix-update-script,
8}:
9
10swiftPackages.stdenv.mkDerivation {
11 pname = "system-audio-dump";
12 version = "1-unstable-2025-09-01";
13
14 src = fetchFromGitHub {
15 owner = "sohzm";
16 repo = "systemAudioDump";
17 rev = "19caa4f6c0661c03a10d1f08c79a11f0b00f251a";
18 hash = "sha256-H2TeB7/Meq7EvfW7zLZn5GGFrKwCyZuJvafv61ZWdrA=";
19 };
20
21 nativeBuildInputs = [
22 swift
23 swiftpm
24 ];
25
26 postPatch = ''
27 # Downgrade swift-tools-version from 6.0 to 5.10 and macOS from v15 to v14
28 sed -i 's/swift-tools-version:6.0/swift-tools-version:5.10/' Package.swift
29 sed -i 's/.macOS(.v15)/.macOS(.v14)/' Package.swift
30
31 # Patch Swift 6 / macOS 15 features in source
32 # Remove @retroactive attribute (Swift 6 feature for silencing conformance warnings)
33 sed -i 's/@retroactive //' Sources/SystemAudioDump/main.swift
34 # Remove captureMicrophone (macOS 15+ only, defaults to false anyway)
35 sed -i '/captureMicrophone/d' Sources/SystemAudioDump/main.swift
36 '';
37
38 buildPhase = ''
39 runHook preBuild
40 swift build -c release
41 runHook postBuild
42 '';
43
44 installPhase = ''
45 runHook preInstall
46 mkdir -p $out/bin
47 cp .build/release/SystemAudioDump $out/bin/system-audio-dump
48 runHook postInstall
49 '';
50
51 passthru.updateScript = nix-update-script {
52 extraArgs = [
53 "--flake"
54 "--version=branch"
55 ];
56 };
57
58 meta = {
59 description = "macOS CLI that captures system audio and outputs raw PCM to stdout";
60 homepage = "https://github.com/sohzm/systemAudioDump";
61 license = lib.licenses.mit;
62 platforms = lib.platforms.darwin;
63 mainProgram = "system-audio-dump";
64 };
65}