@highstate/nixos 0.9.18 → 0.9.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "sourceHashes": {
3
- "./dist/inline-flake/index.js": 2895243567,
4
- "./dist/inline-module/index.js": 3778897670,
5
- "./dist/system/index.js": 372185590
3
+ "./dist/inline-flake/index.js": 3416232143,
4
+ "./dist/inline-module/index.js": 1287701510,
5
+ "./dist/system/index.js": 2636547559
6
6
  }
7
7
  }
@@ -7,7 +7,7 @@ import { forUnit, toPromise } from '@highstate/pulumi';
7
7
 
8
8
  // src/inline-flake/index.ts
9
9
  var { name, args, inputs, outputs } = forUnit(nixos.inlineFlake);
10
- var { repositories, folders } = await toPromise(inputs);
10
+ var { folders } = await toPromise(inputs);
11
11
  var flakeRepo = await MaterializedRepository.create(args.flakeName ?? name);
12
12
  var firstOpenBrace = args.code.indexOf("{\n");
13
13
  if (firstOpenBrace === -1) {
@@ -25,35 +25,21 @@ var hasFlake = async (folder) => {
25
25
  return false;
26
26
  }
27
27
  };
28
- for (const inputRepo of repositories) {
29
- const repo = await MaterializedRepository.open(inputRepo, flakeRepo);
30
- if (await hasFlake(repo.folder)) {
31
- codeParts.push(
32
- `inputs.${inputRepo.folder.meta.name}.url = "git+file:./${repo.entity.folder.meta.name}";`
33
- );
34
- }
35
- }
36
- for (const inputFolder of folders) {
28
+ for (const inputFolder of folders ?? []) {
37
29
  const folder = await MaterializedFolder.open(inputFolder, flakeRepo.folder);
38
30
  if (await hasFlake(folder)) {
39
31
  codeParts.push(`inputs.${inputFolder.meta.name}.url = "path:./${folder.entity.meta.name}";`);
40
32
  }
41
- await flakeRepo.git.add(folder.entity.meta.name);
42
33
  }
43
34
  codeParts.push("", args.code.slice(firstOpenBrace + 1).trim(), "");
44
35
  await writeFile(join(flakeRepo.path, "flake.nix"), codeParts.join("\n"));
45
- await flakeRepo.git.add("flake.nix");
46
- await toPromise(
47
- new Command("update-flake", {
48
- host: "local",
49
- create: "nix flake update",
50
- cwd: flakeRepo.path
51
- }).stdout
52
- );
53
- await flakeRepo.git.add("flake.lock");
54
- await flakeRepo.git.commit("Update flake.nix");
36
+ await new Command("update-flake", {
37
+ host: "local",
38
+ create: "nix flake update",
39
+ cwd: flakeRepo.path
40
+ }).wait();
55
41
  var inline_flake_default = outputs({
56
- repository: await flakeRepo.pack()
42
+ folder: flakeRepo.pack()
57
43
  });
58
44
 
59
45
  export { inline_flake_default as default };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/inline-flake/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { join } from \"node:path\"\nimport { writeFile, access } from \"node:fs/promises\"\nimport { Command, MaterializedFolder } from \"@highstate/common\"\nimport { MaterializedRepository } from \"@highstate/git\"\nimport { nixos } from \"@highstate/library\"\nimport { forUnit, toPromise } from \"@highstate/pulumi\"\n\nconst { name, args, inputs, outputs } = forUnit(nixos.inlineFlake)\n\nconst { repositories, folders } = await toPromise(inputs)\n\nconst flakeRepo = await MaterializedRepository.create(args.flakeName ?? name)\n\nlet firstOpenBrace = args.code.indexOf(\"{\\n\")\nif (firstOpenBrace === -1) {\n firstOpenBrace = args.code.indexOf(\"{\")\n}\n\nif (firstOpenBrace === -1) {\n throw new Error(\"The provided code does not contain a valid flake.nix structure.\")\n}\n\nconst codeParts = [args.code.slice(0, firstOpenBrace + 1).trim(), \"\"]\n\nconst hasFlake = async (folder: MaterializedFolder) => {\n try {\n await access(join(folder.path, \"flake.nix\"))\n return true\n } catch {\n return false\n }\n}\n\nfor (const inputRepo of repositories) {\n const repo = await MaterializedRepository.open(inputRepo, flakeRepo)\n\n if (await hasFlake(repo.folder)) {\n codeParts.push(\n `inputs.${inputRepo.folder.meta.name}.url = \"git+file:./${repo.entity.folder.meta.name}\";`,\n )\n }\n}\n\nfor (const inputFolder of folders) {\n const folder = await MaterializedFolder.open(inputFolder, flakeRepo.folder)\n\n if (await hasFlake(folder)) {\n codeParts.push(`inputs.${inputFolder.meta.name}.url = \"path:./${folder.entity.meta.name}\";`)\n }\n\n await flakeRepo.git.add(folder.entity.meta.name)\n}\n\ncodeParts.push(\"\", args.code.slice(firstOpenBrace + 1).trim(), \"\")\n\nawait writeFile(join(flakeRepo.path, \"flake.nix\"), codeParts.join(\"\\n\"))\nawait flakeRepo.git.add(\"flake.nix\")\n\nawait toPromise(\n new Command(\"update-flake\", {\n host: \"local\",\n create: \"nix flake update\",\n cwd: flakeRepo.path,\n }).stdout,\n)\n\nawait flakeRepo.git.add(\"flake.lock\")\nawait flakeRepo.git.commit(\"Update flake.nix\")\n\nexport default outputs({\n repository: await flakeRepo.pack(),\n})\n"]}
1
+ {"version":3,"sources":["../../src/inline-flake/index.ts"],"names":[],"mappings":";;;;;;;;AAOA,IAAM,EAAE,MAAM,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,MAAM,WAAW,CAAA;AAEjE,IAAM,EAAE,OAAA,EAAQ,GAAI,MAAM,UAAU,MAAM,CAAA;AAE1C,IAAM,YAAY,MAAM,sBAAA,CAAuB,MAAA,CAAO,IAAA,CAAK,aAAa,IAAI,CAAA;AAE5E,IAAI,cAAA,GAAiB,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAC5C,IAAI,mBAAmB,EAAA,EAAI;AACzB,EAAA,cAAA,GAAiB,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACxC;AAEA,IAAI,mBAAmB,EAAA,EAAI;AACzB,EAAA,MAAM,IAAI,MAAM,iEAAiE,CAAA;AACnF;AAEA,IAAM,SAAA,GAAY,CAAC,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,cAAA,GAAiB,CAAC,CAAA,CAAE,IAAA,EAAK,EAAG,EAAE,CAAA;AAEpE,IAAM,QAAA,GAAW,OAAO,MAAA,KAA+B;AACrD,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,IAAA,EAAM,WAAW,CAAC,CAAA;AAC3C,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF,CAAA;AAEA,KAAA,MAAW,WAAA,IAAe,OAAA,IAAW,EAAC,EAAG;AACvC,EAAA,MAAM,SAAS,MAAM,kBAAA,CAAmB,IAAA,CAAK,WAAA,EAAa,UAAU,MAAM,CAAA;AAE1E,EAAA,IAAI,MAAM,QAAA,CAAS,MAAM,CAAA,EAAG;AAC1B,IAAA,SAAA,CAAU,IAAA,CAAK,CAAA,OAAA,EAAU,WAAA,CAAY,IAAA,CAAK,IAAI,kBAAkB,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,EAAA,CAAI,CAAA;AAAA,EAC7F;AACF;AAEA,SAAA,CAAU,IAAA,CAAK,EAAA,EAAI,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,iBAAiB,CAAC,CAAA,CAAE,IAAA,EAAK,EAAG,EAAE,CAAA;AAEjE,MAAM,SAAA,CAAU,KAAK,SAAA,CAAU,IAAA,EAAM,WAAW,CAAA,EAAG,SAAA,CAAU,IAAA,CAAK,IAAI,CAAC,CAAA;AAEvE,MAAM,IAAI,QAAQ,cAAA,EAAgB;AAAA,EAChC,IAAA,EAAM,OAAA;AAAA,EACN,MAAA,EAAQ,kBAAA;AAAA,EACR,KAAK,SAAA,CAAU;AACjB,CAAC,EAAE,IAAA,EAAK;AAER,IAAO,uBAAQ,OAAA,CAAQ;AAAA,EACrB,MAAA,EAAQ,UAAU,IAAA;AACpB,CAAC","file":"index.js","sourcesContent":["import { join } from \"node:path\"\nimport { writeFile, access } from \"node:fs/promises\"\nimport { Command, MaterializedFolder } from \"@highstate/common\"\nimport { MaterializedRepository } from \"@highstate/git\"\nimport { nixos } from \"@highstate/library\"\nimport { forUnit, toPromise } from \"@highstate/pulumi\"\n\nconst { name, args, inputs, outputs } = forUnit(nixos.inlineFlake)\n\nconst { folders } = await toPromise(inputs)\n\nconst flakeRepo = await MaterializedRepository.create(args.flakeName ?? name)\n\nlet firstOpenBrace = args.code.indexOf(\"{\\n\")\nif (firstOpenBrace === -1) {\n firstOpenBrace = args.code.indexOf(\"{\")\n}\n\nif (firstOpenBrace === -1) {\n throw new Error(\"The provided code does not contain a valid flake.nix structure.\")\n}\n\nconst codeParts = [args.code.slice(0, firstOpenBrace + 1).trim(), \"\"]\n\nconst hasFlake = async (folder: MaterializedFolder) => {\n try {\n await access(join(folder.path, \"flake.nix\"))\n return true\n } catch {\n return false\n }\n}\n\nfor (const inputFolder of folders ?? []) {\n const folder = await MaterializedFolder.open(inputFolder, flakeRepo.folder)\n\n if (await hasFlake(folder)) {\n codeParts.push(`inputs.${inputFolder.meta.name}.url = \"path:./${folder.entity.meta.name}\";`)\n }\n}\n\ncodeParts.push(\"\", args.code.slice(firstOpenBrace + 1).trim(), \"\")\n\nawait writeFile(join(flakeRepo.path, \"flake.nix\"), codeParts.join(\"\\n\"))\n\nawait new Command(\"update-flake\", {\n host: \"local\",\n create: \"nix flake update\",\n cwd: flakeRepo.path,\n}).wait()\n\nexport default outputs({\n folder: flakeRepo.pack(),\n})\n"]}
@@ -13,7 +13,7 @@ var inline_module_default = outputs({
13
13
  content: {
14
14
  type: "embedded",
15
15
  files: [
16
- ...files,
16
+ ...files ?? [],
17
17
  {
18
18
  meta: {
19
19
  name: "default.nix"
@@ -24,7 +24,7 @@ var inline_module_default = outputs({
24
24
  }
25
25
  }
26
26
  ],
27
- folders
27
+ folders: folders ?? []
28
28
  }
29
29
  }
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/inline-module/index.ts"],"names":[],"mappings":";;;;AAGA,IAAM,EAAE,MAAM,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,MAAM,YAAY,CAAA;AAElE,IAAM,UAAA,GAAa,KAAK,UAAA,IAAc,IAAA;AACtC,IAAM,EAAE,KAAA,EAAO,OAAA,EAAQ,GAAI,MAAM,UAAU,MAAM,CAAA;AAEjD,IAAO,wBAAQ,OAAA,CAAQ;AAAA,EACrB,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM;AAAA,KACR;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,GAAG,KAAA;AAAA,QACH;AAAA,UACE,IAAA,EAAM;AAAA,YACJ,IAAA,EAAM;AAAA,WACR;AAAA,UACA,OAAA,EAAS;AAAA,YACP,IAAA,EAAM,UAAA;AAAA,YACN,OAAO,IAAA,CAAK;AAAA;AACd;AACF,OACF;AAAA,MACA;AAAA;AACF;AAEJ,CAAC","file":"index.js","sourcesContent":["import { nixos } from \"@highstate/library\"\nimport { forUnit, toPromise } from \"@highstate/pulumi\"\n\nconst { name, args, inputs, outputs } = forUnit(nixos.inlineModule)\n\nconst moduleName = args.moduleName ?? name\nconst { files, folders } = await toPromise(inputs)\n\nexport default outputs({\n folder: {\n meta: {\n name: moduleName,\n },\n content: {\n type: \"embedded\",\n files: [\n ...files,\n {\n meta: {\n name: \"default.nix\",\n },\n content: {\n type: \"embedded\",\n value: args.code,\n },\n },\n ],\n folders,\n },\n },\n})\n"]}
1
+ {"version":3,"sources":["../../src/inline-module/index.ts"],"names":[],"mappings":";;;;AAGA,IAAM,EAAE,MAAM,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,MAAM,YAAY,CAAA;AAElE,IAAM,UAAA,GAAa,KAAK,UAAA,IAAc,IAAA;AACtC,IAAM,EAAE,KAAA,EAAO,OAAA,EAAQ,GAAI,MAAM,UAAU,MAAM,CAAA;AAEjD,IAAO,wBAAQ,OAAA,CAAQ;AAAA,EACrB,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM;AAAA,KACR;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,GAAI,SAAS,EAAC;AAAA,QACd;AAAA,UACE,IAAA,EAAM;AAAA,YACJ,IAAA,EAAM;AAAA,WACR;AAAA,UACA,OAAA,EAAS;AAAA,YACP,IAAA,EAAM,UAAA;AAAA,YACN,OAAO,IAAA,CAAK;AAAA;AACd;AACF,OACF;AAAA,MACA,OAAA,EAAS,WAAW;AAAC;AACvB;AAEJ,CAAC","file":"index.js","sourcesContent":["import { nixos } from \"@highstate/library\"\nimport { forUnit, toPromise } from \"@highstate/pulumi\"\n\nconst { name, args, inputs, outputs } = forUnit(nixos.inlineModule)\n\nconst moduleName = args.moduleName ?? name\nconst { files, folders } = await toPromise(inputs)\n\nexport default outputs({\n folder: {\n meta: {\n name: moduleName,\n },\n content: {\n type: \"embedded\",\n files: [\n ...(files ?? []),\n {\n meta: {\n name: \"default.nix\",\n },\n content: {\n type: \"embedded\",\n value: args.code,\n },\n },\n ],\n folders: folders ?? [],\n },\n },\n})\n"]}
@@ -5,30 +5,28 @@ import { MaterializedRepository } from '@highstate/git';
5
5
 
6
6
  // src/system/index.ts
7
7
  var { name, args, inputs, outputs } = forUnit(nixos.system);
8
- var { repository, server } = await toPromise(inputs);
8
+ var { flake, server } = await toPromise(inputs);
9
9
  if (!server.ssh) {
10
10
  throw new Error("Server must have an SSH endpoint defined");
11
11
  }
12
- var repo = await MaterializedRepository.open(repository);
12
+ var repo = await MaterializedRepository.open(flake);
13
13
  var privateKey = await MaterializedFile.create(
14
14
  "private-key",
15
- server.ssh.keyPair.privateKey,
15
+ server.ssh.keyPair?.privateKey,
16
16
  384
17
17
  );
18
18
  var system = args.system ?? server.hostname;
19
- await toPromise(
20
- new Command(name, {
21
- host: "local",
22
- create: [
23
- "nixos-anywhere",
24
- `--flake ${repo.path}#${system}`,
25
- `-i ${privateKey.path}`,
26
- `--target-host ${server.ssh.user}@${l3EndpointToString(server.ssh.endpoints[0])}`,
27
- `--ssh-port ${server.ssh.endpoints[0].port}`,
28
- "--copy-host-keys"
29
- ]
30
- }).stdout
31
- );
19
+ await new Command(name, {
20
+ host: "local",
21
+ create: [
22
+ "nixos-anywhere",
23
+ `--flake ${repo.path}#${system}`,
24
+ `-i ${privateKey.path}`,
25
+ `--target-host ${server.ssh.user}@${l3EndpointToString(server.ssh.endpoints[0])}`,
26
+ `--ssh-port ${server.ssh.endpoints[0].port}`,
27
+ "--copy-host-keys"
28
+ ]
29
+ }).wait();
32
30
  var system_default = outputs({
33
31
  server: inputs.server,
34
32
  $terminals: [createSshTerminal(server.ssh)]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/system/index.ts"],"names":[],"mappings":";;;;;;AAKA,IAAM,EAAE,MAAM,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,MAAM,MAAM,CAAA;AAE5D,IAAM,EAAE,UAAA,EAAY,MAAA,EAAO,GAAI,MAAM,UAAU,MAAM,CAAA;AAErD,IAAI,CAAC,OAAO,GAAA,EAAK;AACf,EAAA,MAAM,IAAI,MAAM,0CAA0C,CAAA;AAC5D;AAEA,IAAM,IAAA,GAAO,MAAM,sBAAA,CAAuB,IAAA,CAAK,UAAU,CAAA;AAEzD,IAAM,UAAA,GAAa,MAAM,gBAAA,CAAiB,MAAA;AAAA,EACxC,aAAA;AAAA,EACA,MAAA,CAAO,IAAI,OAAA,CAAS,UAAA;AAAA,EACpB;AACF,CAAA;AAEA,IAAM,MAAA,GAAS,IAAA,CAAK,MAAA,IAAU,MAAA,CAAO,QAAA;AAErC,MAAM,SAAA;AAAA,EACJ,IAAI,QAAQ,IAAA,EAAM;AAAA,IAChB,IAAA,EAAM,OAAA;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,gBAAA;AAAA,MACA,CAAA,QAAA,EAAW,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,MAC9B,CAAA,GAAA,EAAM,WAAW,IAAI,CAAA,CAAA;AAAA,MACrB,CAAA,cAAA,EAAiB,MAAA,CAAO,GAAA,CAAI,IAAI,CAAA,CAAA,EAAI,kBAAA,CAAmB,MAAA,CAAO,GAAA,CAAI,SAAA,CAAU,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,MAC/E,cAAc,MAAA,CAAO,GAAA,CAAI,SAAA,CAAU,CAAC,EAAE,IAAI,CAAA,CAAA;AAAA,MAC1C;AAAA;AACF,GACD,CAAA,CAAE;AACL,CAAA;AAEA,IAAO,iBAAQ,OAAA,CAAQ;AAAA,EACrB,QAAQ,MAAA,CAAO,MAAA;AAAA,EAEf,UAAA,EAAY,CAAC,iBAAA,CAAkB,MAAA,CAAO,GAAG,CAAC;AAC5C,CAAC","file":"index.js","sourcesContent":["import { Command, createSshTerminal, l3EndpointToString, MaterializedFile } from \"@highstate/common\"\nimport { nixos } from \"@highstate/library\"\nimport { forUnit, toPromise } from \"@highstate/pulumi\"\nimport { MaterializedRepository } from \"@highstate/git\"\n\nconst { name, args, inputs, outputs } = forUnit(nixos.system)\n\nconst { repository, server } = await toPromise(inputs)\n\nif (!server.ssh) {\n throw new Error(\"Server must have an SSH endpoint defined\")\n}\n\nconst repo = await MaterializedRepository.open(repository)\n\nconst privateKey = await MaterializedFile.create(\n \"private-key\",\n server.ssh.keyPair!.privateKey,\n 0o600,\n)\n\nconst system = args.system ?? server.hostname\n\nawait toPromise(\n new Command(name, {\n host: \"local\",\n create: [\n \"nixos-anywhere\",\n `--flake ${repo.path}#${system}`,\n `-i ${privateKey.path}`,\n `--target-host ${server.ssh.user}@${l3EndpointToString(server.ssh.endpoints[0])}`,\n `--ssh-port ${server.ssh.endpoints[0].port}`,\n \"--copy-host-keys\",\n ],\n }).stdout,\n)\n\nexport default outputs({\n server: inputs.server,\n\n $terminals: [createSshTerminal(server.ssh)],\n})\n"]}
1
+ {"version":3,"sources":["../../src/system/index.ts"],"names":[],"mappings":";;;;;;AAKA,IAAM,EAAE,MAAM,IAAA,EAAM,MAAA,EAAQ,SAAQ,GAAI,OAAA,CAAQ,MAAM,MAAM,CAAA;AAE5D,IAAM,EAAE,KAAA,EAAO,MAAA,EAAO,GAAI,MAAM,UAAU,MAAM,CAAA;AAEhD,IAAI,CAAC,OAAO,GAAA,EAAK;AACf,EAAA,MAAM,IAAI,MAAM,0CAA0C,CAAA;AAC5D;AAEA,IAAM,IAAA,GAAO,MAAM,sBAAA,CAAuB,IAAA,CAAK,KAAK,CAAA;AAEpD,IAAM,UAAA,GAAa,MAAM,gBAAA,CAAiB,MAAA;AAAA,EACxC,aAAA;AAAA,EACA,MAAA,CAAO,IAAI,OAAA,EAAS,UAAA;AAAA,EACpB;AACF,CAAA;AAEA,IAAM,MAAA,GAAS,IAAA,CAAK,MAAA,IAAU,MAAA,CAAO,QAAA;AAErC,MAAM,IAAI,QAAQ,IAAA,EAAM;AAAA,EACtB,IAAA,EAAM,OAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,gBAAA;AAAA,IACA,CAAA,QAAA,EAAW,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,IAC9B,CAAA,GAAA,EAAM,WAAW,IAAI,CAAA,CAAA;AAAA,IACrB,CAAA,cAAA,EAAiB,MAAA,CAAO,GAAA,CAAI,IAAI,CAAA,CAAA,EAAI,kBAAA,CAAmB,MAAA,CAAO,GAAA,CAAI,SAAA,CAAU,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,IAC/E,cAAc,MAAA,CAAO,GAAA,CAAI,SAAA,CAAU,CAAC,EAAE,IAAI,CAAA,CAAA;AAAA,IAC1C;AAAA;AAEJ,CAAC,EAAE,IAAA,EAAK;AAER,IAAO,iBAAQ,OAAA,CAAQ;AAAA,EACrB,QAAQ,MAAA,CAAO,MAAA;AAAA,EAEf,UAAA,EAAY,CAAC,iBAAA,CAAkB,MAAA,CAAO,GAAG,CAAC;AAC5C,CAAC","file":"index.js","sourcesContent":["import { Command, createSshTerminal, l3EndpointToString, MaterializedFile } from \"@highstate/common\"\nimport { nixos } from \"@highstate/library\"\nimport { forUnit, toPromise } from \"@highstate/pulumi\"\nimport { MaterializedRepository } from \"@highstate/git\"\n\nconst { name, args, inputs, outputs } = forUnit(nixos.system)\n\nconst { flake, server } = await toPromise(inputs)\n\nif (!server.ssh) {\n throw new Error(\"Server must have an SSH endpoint defined\")\n}\n\nconst repo = await MaterializedRepository.open(flake)\n\nconst privateKey = await MaterializedFile.create(\n \"private-key\",\n server.ssh.keyPair?.privateKey,\n 0o600,\n)\n\nconst system = args.system ?? server.hostname\n\nawait new Command(name, {\n host: \"local\",\n create: [\n \"nixos-anywhere\",\n `--flake ${repo.path}#${system}`,\n `-i ${privateKey.path}`,\n `--target-host ${server.ssh.user}@${l3EndpointToString(server.ssh.endpoints[0])}`,\n `--ssh-port ${server.ssh.endpoints[0].port}`,\n \"--copy-host-keys\",\n ],\n}).wait()\n\nexport default outputs({\n server: inputs.server,\n\n $terminals: [createSshTerminal(server.ssh)],\n})\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highstate/nixos",
3
- "version": "0.9.18",
3
+ "version": "0.9.20",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -17,17 +17,17 @@
17
17
  "build": "highstate build"
18
18
  },
19
19
  "dependencies": {
20
- "@highstate/common": "^0.9.18",
21
- "@highstate/contract": "^0.9.18",
22
- "@highstate/git": "^0.9.18",
23
- "@highstate/library": "^0.9.18",
24
- "@highstate/pulumi": "^0.9.18",
20
+ "@highstate/common": "^0.9.20",
21
+ "@highstate/contract": "^0.9.20",
22
+ "@highstate/git": "^0.9.20",
23
+ "@highstate/library": "^0.9.20",
24
+ "@highstate/pulumi": "^0.9.20",
25
25
  "@pulumi/kubernetes": "^4.18.0",
26
26
  "@pulumi/pulumi": "^3.184.0",
27
27
  "remeda": "^2.21.3"
28
28
  },
29
29
  "devDependencies": {
30
- "@highstate/cli": "^0.9.18"
30
+ "@highstate/cli": "^0.9.20"
31
31
  },
32
- "gitHead": "9ebcd7da56b00b8ca08bf52cc8438f527338cd64"
32
+ "gitHead": "4bf9183450c2c6f51d6a99d77efc379ff5c7b7ef"
33
33
  }