{ description = "Bloggy time!"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; deploy-rs.url = "github:serokell/deploy-rs"; treefmt-nix.url = "github:numtide/treefmt-nix"; }; outputs = { self, nixpkgs, deploy-rs, systems, treefmt-nix, }: let # systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; forAllSystems = fn: nixpkgs.lib.genAttrs (import systems) (system: fn nixpkgs.legacyPackages.${system}); treefmtEval = forAllSystems (pkgs: treefmt-nix.lib.evalModule pkgs ./treefmt.nix); in { apps = forAllSystems (pkgs: { "deploy" = { type = "app"; program = let ci = ( pkgs.writeShellApplication { name = "ci.sh"; text = '' nix build ''; } ); in "${ci}/ci.sh"; }; }); packages = forAllSystems (pkgs: { default = pkgs.callPackage ./package.nix { }; }); deploy.nodes.myblog = { hostname = "saji.dev"; profiles.mysite = { sshUser = "static-site"; user = "static-site"; path = deploy-rs.lib.x86_64-linux.activate.custom self.packages.x86_64-linux.default '' rm -rf /var/lib/static-site/public ln -sn $PROFILE/public /var/lib/static-site/public ''; }; }; formatter = forAllSystems (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper); checks = forAllSystems (pkgs: { formatting = treefmtEval.${pkgs.system}.config.build.check self; }); devShells = forAllSystems (pkgs: { default = pkgs.mkShell { packages = with pkgs; [ nodejs vips pkg-config ]; }; }); }; }