atagen

roundabout

public
Star0
Watch0
9117440444eb609ecea8476b5a62b03917077591
1
ssh://brewery@pls.lobotomise.me:33/atagen/roundabout.git

Blame: nix/plugin.nix

6eb193fbfa70atagen2026-09-27 03:59 UTC1
{
6eb193fbfa70atagen2026-09-27 03:59 UTC2
  lib,
6eb193fbfa70atagen2026-09-27 03:59 UTC3
  runCommand,
6eb193fbfa70atagen2026-09-27 03:59 UTC4
  writeText,
6eb193fbfa70atagen2026-09-27 03:59 UTC5
  roundabout,
6eb193fbfa70atagen2026-09-27 03:59 UTC6
}:
6eb193fbfa70atagen2026-09-27 03:59 UTC7
6eb193fbfa70atagen2026-09-27 03:59 UTC8
let
6eb193fbfa70atagen2026-09-27 03:59 UTC9
  hooks = writeText "hooks.json" (
6eb193fbfa70atagen2026-09-27 03:59 UTC10
    builtins.toJSON {
052a1a49371catagen2026-09-27 03:59 UTC11
      hooks = import ./hooks.nix { inherit lib roundabout; };
6eb193fbfa70atagen2026-09-27 03:59 UTC12
    }
6eb193fbfa70atagen2026-09-27 03:59 UTC13
  );
6eb193fbfa70atagen2026-09-27 03:59 UTC14
  plugin = writeText "plugin.json" (
6eb193fbfa70atagen2026-09-27 03:59 UTC15
    builtins.toJSON {
6eb193fbfa70atagen2026-09-27 03:59 UTC16
      name = "roundabout";
6eb193fbfa70atagen2026-09-27 03:59 UTC17
      description = "builds wait their turn";
6eb193fbfa70atagen2026-09-27 03:59 UTC18
      version = roundabout.version;
6eb193fbfa70atagen2026-09-27 03:59 UTC19
      author.name = "atagen";
6eb193fbfa70atagen2026-09-27 03:59 UTC20
    }
6eb193fbfa70atagen2026-09-27 03:59 UTC21
  );
6eb193fbfa70atagen2026-09-27 03:59 UTC22
  marketplace = writeText "marketplace.json" (
6eb193fbfa70atagen2026-09-27 03:59 UTC23
    builtins.toJSON {
6eb193fbfa70atagen2026-09-27 03:59 UTC24
      name = "roundabout";
6eb193fbfa70atagen2026-09-27 03:59 UTC25
      owner.name = "atagen";
6eb193fbfa70atagen2026-09-27 03:59 UTC26
      description = "one build at a time, please";
6eb193fbfa70atagen2026-09-27 03:59 UTC27
      plugins = [
6eb193fbfa70atagen2026-09-27 03:59 UTC28
        {
6eb193fbfa70atagen2026-09-27 03:59 UTC29
          name = "roundabout";
6eb193fbfa70atagen2026-09-27 03:59 UTC30
          source = "./plugins/roundabout";
6eb193fbfa70atagen2026-09-27 03:59 UTC31
        }
6eb193fbfa70atagen2026-09-27 03:59 UTC32
      ];
6eb193fbfa70atagen2026-09-27 03:59 UTC33
    }
6eb193fbfa70atagen2026-09-27 03:59 UTC34
  );
6eb193fbfa70atagen2026-09-27 03:59 UTC35
in
6eb193fbfa70atagen2026-09-27 03:59 UTC36
# a marketplace wrapping one plugin, since claude code won't install a bare
6eb193fbfa70atagen2026-09-27 03:59 UTC37
# plugin dir. `claude plugin marketplace add <this>` then install roundabout@roundabout
6eb193fbfa70atagen2026-09-27 03:59 UTC38
runCommand "roundabout-plugin-${roundabout.version}" { } ''
6eb193fbfa70atagen2026-09-27 03:59 UTC39
  p=$out/plugins/roundabout
6eb193fbfa70atagen2026-09-27 03:59 UTC40
  mkdir -p $out/.claude-plugin $p/.claude-plugin $p/hooks $p/skills $p/bin
6eb193fbfa70atagen2026-09-27 03:59 UTC41
  cp ${marketplace} $out/.claude-plugin/marketplace.json
6eb193fbfa70atagen2026-09-27 03:59 UTC42
  cp ${plugin} $p/.claude-plugin/plugin.json
6eb193fbfa70atagen2026-09-27 03:59 UTC43
  cp ${hooks} $p/hooks/hooks.json
6eb193fbfa70atagen2026-09-27 03:59 UTC44
  cp -r ${../plugin/skills}/. $p/skills/
fdad58f8133aatagen2026-10-25 23:14 UTC45
  ln -s ${lib.getExe roundabout} $p/bin/roundabout
6eb193fbfa70atagen2026-09-27 03:59 UTC46
''