diff options
| author | seth <[email protected]> | 2024-12-19 16:26:18 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-12-19 21:26:18 +0000 |
| commit | 2ae2b978f3fad7a58cb129333b36a210bb200488 (patch) | |
| tree | ef12b9e1a29462c4de6b787fcf9c34d80b563b9f /nix | |
| parent | 77309844e6b890544bc4eea7f03bbafe493ba61e (diff) | |
jolly winter cleanup (#251)
* ci: bump DeterminateSystems/nix-installer-action from 13 to 16
Bumps [DeterminateSystems/nix-installer-action](https://github.com/determinatesystems/nix-installer-action) from 13 to 16.
- [Release notes](https://github.com/determinatesystems/nix-installer-action/releases)
- [Commits](https://github.com/determinatesystems/nix-installer-action/compare/v13...v16)
---
updated-dependencies:
- dependency-name: DeterminateSystems/nix-installer-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <[email protected]>
* crates: bump serde from 1.0.209 to 1.0.215
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.209 to 1.0.215.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.215)
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
* crates: bump serde_json from 1.0.127 to 1.0.133
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.127 to 1.0.133.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.127...v1.0.133)
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
* crates: bump tokio from 1.40.0 to 1.41.1
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.41.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.40.0...tokio-1.41.1)
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <[email protected]>
* crates: bump reqwest from 0.12.7 to 0.12.9
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.7 to 0.12.9.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.7...v0.12.9)
---
updated-dependencies:
- dependency-name: reqwest
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
* nix: update flake.lock
* ci: bump DeterminateSystems/magic-nix-cache-action from 7 to 8
Bumps [DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action) from 7 to 8.
- [Release notes](https://github.com/determinatesystems/magic-nix-cache-action/releases)
- [Commits](https://github.com/determinatesystems/magic-nix-cache-action/compare/v7...v8)
---
updated-dependencies:
- dependency-name: DeterminateSystems/magic-nix-cache-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <[email protected]>
* treewide: debrand
* nix: adopt new darwin sdk
* nix: drop treefmt
* nix: misc formatting changes
* ci: cleanup
* nix: pass version info to static builds
* nix: mv {derivation,package}.nix
* eyre -> anyhow
* remove 2024 edition warnings
* format with rustfmt
* remove optional commands
* ci: don't include internal variables in job names
* nix: enable for lto builds
---------
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: getchoo-bot[bot] <183349775+getchoo-bot[bot]@users.noreply.github.com>
Diffstat (limited to 'nix')
| -rw-r--r-- | nix/containerize.nix | 12 | ||||
| -rw-r--r-- | nix/derivation.nix | 71 | ||||
| -rw-r--r-- | nix/module.nix | 52 | ||||
| -rw-r--r-- | nix/package.nix | 60 | ||||
| -rw-r--r-- | nix/static.nix | 20 |
5 files changed, 113 insertions, 102 deletions
diff --git a/nix/containerize.nix b/nix/containerize.nix index 8175e17..b936b90 100644 --- a/nix/containerize.nix +++ b/nix/containerize.nix @@ -1,17 +1,21 @@ { lib, dockerTools }: + let containerize = - teawie-bot: + chill-discord-bot: + let - inherit (teawie-bot.passthru) crossPkgs; + inherit (chill-discord-bot.passthru) crossPkgs; architecture = crossPkgs.go.GOARCH; in + dockerTools.buildLayeredImage { - name = "teawie-bot"; + name = "chill-discord-bot"; tag = "latest-${architecture}"; contents = [ dockerTools.caCertificates ]; - config.Cmd = [ (lib.getExe teawie-bot) ]; + config.Cmd = [ (lib.getExe chill-discord-bot) ]; inherit architecture; }; in + containerize diff --git a/nix/derivation.nix b/nix/derivation.nix deleted file mode 100644 index 955f601..0000000 --- a/nix/derivation.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ - lib, - stdenv, - rustPlatform, - darwin, - self ? { }, - lto ? true, - optimizeSize ? false, -}: -let - fs = lib.fileset; -in -rustPlatform.buildRustPackage { - pname = "teawie-bot"; - version = (lib.importTOML ../Cargo.toml).package.version or "unknown"; - - src = fs.toSource { - root = ../.; - fileset = fs.intersection (fs.gitTracked ../.) ( - lib.fileset.unions [ - ../src - ../Cargo.toml - ../Cargo.lock - ] - ); - }; - - cargoLock = { - lockFile = ../Cargo.lock; - }; - - buildInputs = lib.optionals stdenv.isDarwin ( - with darwin.apple_sdk.frameworks; - [ - CoreFoundation - Security - SystemConfiguration - darwin.libiconv - ] - ); - - env = - let - toRustFlags = lib.mapAttrs' ( - name: - lib.nameValuePair "CARGO_BUILD_RELEASE_${ - lib.toUpper (builtins.replaceStrings [ "-" ] [ "_" ] name) - }" - ); - in - { - GIT_SHA = self.shortRev or self.dirtyShortRev or "unknown"; - } - // lib.optionalAttrs lto (toRustFlags { - lto = "thin"; - }) - // lib.optionalAttrs optimizeSize (toRustFlags { - codegen-units = 1; - opt-level = "s"; - panic = "abort"; - strip = "symbols"; - }); - - meta = { - description = "funni bot"; - homepage = "https://github.com/getchoo/teawiebot"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ getchoo ]; - mainProgram = "teawie-bot"; - }; -} diff --git a/nix/module.nix b/nix/module.nix index 4e3b683..8220e3f 100644 --- a/nix/module.nix +++ b/nix/module.nix @@ -5,14 +5,11 @@ self: pkgs, ... }: -let - cfg = config.services.teawiebot; - defaultUser = "teawiebot"; +let inherit (lib) getExe literalExpression - mdDoc mkEnableOption mkIf mkOption @@ -20,17 +17,22 @@ let optionals types ; - inherit (pkgs.stdenv.hostPlatform) system; + + cfg = config.services.chill-discord-bot; + + defaultUser = "chill-discord-bot"; + flakePackages = self.packages.${system} or (throw "getchoo/chill: ${system} is not supported"); in + { - options.services.teawiebot = { - enable = mkEnableOption "teawieBot"; - package = mkPackageOption (self.packages.${system} or (builtins.throw "${system} is not supported!") - ) "teawie-bot" { }; + options.services.chill-discord-bot = { + enable = mkEnableOption "chill"; + + package = mkPackageOption flakePackages "chill-discord-bot" { }; user = mkOption { - description = mdDoc '' + description = '' User under which the service should run. If this is the default value, the user will be created, with the specified group as the primary group. @@ -43,7 +45,7 @@ in }; group = mkOption { - description = mdDoc '' + description = '' Group under which the service should run. If this is the default value, the group will be created. ''; @@ -55,7 +57,7 @@ in }; redisUrl = mkOption { - description = mdDoc '' + description = '' Connection to a redis server. If this needs to include credentials that shouldn't be world-readable in the Nix store, set environmentFile and override the `REDIS_URL` entry. @@ -69,28 +71,36 @@ in }; environmentFile = mkOption { - description = mdDoc '' + description = '' Environment file as defined in {manpage}`systemd.exec(5)` ''; type = types.nullOr types.path; default = null; example = literalExpression '' - "/run/agenix.d/1/teawieBot" + "/run/agenix.d/1/chillDiscordBot" ''; }; }; + imports = [ + (lib.mkRenamedOptionModule [ "services" "teawiebot" ] [ "services" "chill-discord-bot" ]) + ]; + config = mkIf cfg.enable { - services.redis.servers.teawiebot = mkIf (cfg.redisUrl == "local") { - enable = true; - inherit (cfg) user; - port = 0; # disable tcp listener + services.redis.servers = mkIf (cfg.redisUrl == "local") { + chill-discord-bot = { + enable = true; + inherit (cfg) user; + port = 0; # disable tcp listener + }; }; - systemd.services."teawiebot" = { + systemd.services.chill-discord-bot = { enable = true; wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ] ++ optionals (cfg.redisUrl == "local") [ "redis-teawiebot.service" ]; + after = [ + "network.target" + ] ++ optionals (cfg.redisUrl == "local") [ "redis-chill-discord-bot.service" ]; script = '' ${getExe cfg.package} @@ -99,7 +109,7 @@ in environment = { REDIS_URL = if cfg.redisUrl == "local" then - "unix:${config.services.redis.servers.teawiebot.unixSocket}" + "unix:${config.services.redis.servers.chill-discord-bot.unixSocket}" else cfg.redisUrl; }; diff --git a/nix/package.nix b/nix/package.nix new file mode 100644 index 0000000..abb3129 --- /dev/null +++ b/nix/package.nix @@ -0,0 +1,60 @@ +{ + lib, + rustPlatform, + self ? { }, + lto ? true, + optimizeSize ? false, +}: + +let + fs = lib.fileset; +in + +rustPlatform.buildRustPackage { + pname = "chill-discord-bot"; + version = (lib.importTOML ../Cargo.toml).package.version or "unknown"; + + src = fs.toSource { + root = ../.; + fileset = fs.intersection (fs.gitTracked ../.) ( + lib.fileset.unions [ + ../src + ../Cargo.toml + ../Cargo.lock + ] + ); + }; + + cargoLock.lockFile = ../Cargo.lock; + + # `-C panic="abort"` breaks checks + doCheck = !optimizeSize; + + RUSTFLAGS = + lib.optionals lto [ + "-C" + "embed-bitcode=yes" + "-C" + "lto=thin" + ] + ++ lib.optionals optimizeSize [ + "-C" + "codegen-units=1" + "-C" + "opt-level=s" + "-C" + "panic=abort" + "-C" + "strip=symbols" + ]; + + GIT_SHA = self.shortRev or self.dirtyShortRev or "unknown"; + + meta = { + description = "funni bot"; + homepage = "https://github.com/getchoo/chill"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ getchoo ]; + mainProgram = "chill"; + }; +} diff --git a/nix/static.nix b/nix/static.nix index 5a5606f..1c9ac42 100644 --- a/nix/static.nix +++ b/nix/static.nix @@ -1,20 +1,28 @@ { lib, pkgsCross, - teawie-bot, + self, }: + let crossPkgsFor = with pkgsCross; { x86_64 = musl64.pkgsStatic; aarch64 = aarch64-multiplatform.pkgsStatic; }; in + { arch }: + let crossPkgs = crossPkgsFor.${arch}; in -(crossPkgs.callPackage ./derivation.nix { optimizeSize = true; }).overrideAttrs (old: { - passthru = old.passthru or { } // { - inherit crossPkgs; - }; -}) + +(crossPkgs.callPackage ./package.nix { + inherit self; + optimizeSize = true; +}).overrideAttrs + (old: { + passthru = old.passthru or { } // { + inherit crossPkgs; + }; + }) |
