| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- {
- description = "OpenCode development flake";
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- };
- outputs =
- { self, nixpkgs, ... }:
- let
- systems = [
- "aarch64-linux"
- "x86_64-linux"
- "aarch64-darwin"
- "x86_64-darwin"
- ];
- forEachSystem = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
- rev = self.shortRev or self.dirtyShortRev or "dirty";
- in
- {
- devShells = forEachSystem (pkgs: {
- default = pkgs.mkShell {
- packages = with pkgs; [
- bun
- nodejs_20
- pkg-config
- openssl
- git
- ];
- };
- });
- overlays = {
- default =
- final: _prev:
- let
- node_modules = final.callPackage ./nix/node_modules.nix {
- inherit rev;
- };
- opencode = final.callPackage ./nix/opencode.nix {
- inherit node_modules;
- };
- desktop = final.callPackage ./nix/desktop.nix {
- inherit opencode;
- };
- in
- {
- inherit opencode;
- opencode-desktop = desktop;
- };
- };
- packages = forEachSystem (
- pkgs:
- let
- node_modules = pkgs.callPackage ./nix/node_modules.nix {
- inherit rev;
- };
- opencode = pkgs.callPackage ./nix/opencode.nix {
- inherit node_modules;
- };
- desktop = pkgs.callPackage ./nix/desktop.nix {
- inherit opencode;
- };
- in
- {
- default = opencode;
- inherit opencode desktop;
- # Updater derivation with fakeHash - build fails and reveals correct hash
- node_modules_updater = node_modules.override {
- hash = pkgs.lib.fakeHash;
- };
- }
- );
- };
- }
|