summaryrefslogtreecommitdiff
path: root/nix/dev/static.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2024-04-20 02:31:40 +0000
committerGitHub <[email protected]>2024-04-19 22:31:40 -0400
commit3d07413690c551d9f034c93af85ae8da5a495e14 (patch)
tree517d2e053ebdeb9a3be0ffce6dec36cbc4ce316e /nix/dev/static.nix
parent1b92b254bc64b356f5c59657d2f0acc767bb2964 (diff)
spring cleaning (#165)
* treewide: lightly refactor everything * once_cell -> std::sync * remove build.rs we can get our target at runtime * commands::copypasta: refactor selection * drop owo_colors * reactboard: always remove author from count * commands: better handle behavior outside of guilds * ci: garnix -> gha * nix: drop flake-parts & pre-commit-hooks * nix: fix rust flags in derivation * add gha badge to readme * ci: fail when format changes are made * ci: only run on push to main * nix: fix nil script * nix: add libiconv to darwin deps * ci: disable fail-fast * nix: fix actionlint & static checks * ci: add release gates * nix: fix nil check again * ci: give release gates unique names * ci: only build static packages in docker workflow * nix: move dev outputs to subflake * fix some typos * nix: cleanup checks & dev shell * add editorconfig
Diffstat (limited to 'nix/dev/static.nix')
-rw-r--r--nix/dev/static.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/nix/dev/static.nix b/nix/dev/static.nix
new file mode 100644
index 0000000..e8780f4
--- /dev/null
+++ b/nix/dev/static.nix
@@ -0,0 +1,39 @@
+{
+ perSystem = {
+ lib,
+ pkgs,
+ inputs',
+ teawiebot',
+ ...
+ }: let
+ crossTargets = with pkgs.pkgsCross; {
+ x86_64 = musl64.pkgsStatic;
+ aarch64 = aarch64-multiplatform.pkgsStatic;
+ };
+
+ rustStdFor = pkgs: inputs'.fenix.packages.targets.${pkgs.stdenv.hostPlatform.rust.rustcTarget}.stable.rust-std;
+ toolchain = with inputs'.fenix.packages;
+ combine (lib.flatten [
+ stable.cargo
+ stable.rustc
+ (map rustStdFor (lib.attrValues crossTargets))
+ ]);
+
+ rustPlatformFor = pkgs:
+ pkgs.makeRustPlatform (
+ lib.genAttrs ["cargo" "rustc"] (lib.const toolchain)
+ );
+ crossPlatforms = lib.mapAttrs (lib.const rustPlatformFor) crossTargets;
+
+ buildTeawieWith = rustPlatform:
+ teawiebot'.packages.teawiebot.override {
+ inherit rustPlatform;
+ optimizeSize = true;
+ };
+ in {
+ packages = {
+ teawiebot-static-x86_64 = buildTeawieWith crossPlatforms.x86_64;
+ teawiebot-static-aarch64 = buildTeawieWith crossPlatforms.aarch64;
+ };
+ };
+}