This repository has no description
1.1 kB
52 lines
1{
2 lib,
3 mkYarnPackage,
4 fetchFromGitHub,
5 fetchYarnDeps,
6 makeWrapper,
7 nodejs,
8}:
9
10mkYarnPackage rec {
11 pname = "happy-coder";
12 version = "0.11.2";
13
14 src = fetchFromGitHub {
15 owner = "slopus";
16 repo = "happy-cli";
17 rev = "v${version}";
18 hash = "sha256-WKzbpxHqE3Dxqy/PDj51tM9+Wl2Pallfrc5UU2MxNn8=";
19 };
20
21 offlineCache = fetchYarnDeps {
22 yarnLock = "${src}/yarn.lock";
23 hash = "sha256-3/qcbCJ+Iwc+9zPCHKsCv05QZHPUp0it+QR3z7m+ssw=";
24 };
25
26 packageJSON = "${src}/package.json";
27
28 nativeBuildInputs = [ makeWrapper ];
29
30 buildPhase = ''
31 runHook preBuild
32 yarn --offline build
33 runHook postBuild
34 '';
35
36 # Wrap binaries to include node in PATH (needed for daemon subprocess spawning)
37 postInstall = ''
38 for bin in $out/bin/*; do
39 wrapProgram "$bin" --prefix PATH : ${lib.makeBinPath [ nodejs ]}
40 done
41 '';
42
43 distPhase = "true";
44
45 meta = {
46 description = "Mobile and Web client for Claude Code and Codex";
47 homepage = "https://github.com/slopus/happy-cli";
48 license = lib.licenses.mit;
49 maintainers = [ ];
50 mainProgram = "happy";
51 };
52}