{ description = "Tilde Friends is a platform for making, running, and sharing web applications."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in rec { # Nix formatter, run using `$ nix fmt` formatter = pkgs.alejandra; # Exports the tildefriends package # Build with `$ nix build` packages.default = pkgs.callPackage ./default.nix {}; # Creates a shell with the necessary dependencies # Enter using `$ nix develop` devShell = pkgs.mkShell { buildInputs = with pkgs; [ openssl llvmPackages_17.clang-unwrapped unzip doxygen graphviz ]; }; nixosModules.default = { config, lib, ... }: let # Shorter name to access final settings a # user of hello.nix module HAS ACTUALLY SET. # cfg is a typical convention. cfg = config.services.tildefriends; in { options.services.tildefriends = { enable = lib.mkEnableOption "Enable Tilde Friends"; }; config = lib.mkIf cfg.enable { systemd.services.tildefriends = { wantedBy = ["multi-user.target"]; serviceConfig.ExecStart = "${pkgs.tildefriends}/bin/tildefriends"; }; }; }; }); }