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