homesync/flake.nix

58 lines
1.5 KiB
Nix

{
description = "Project for syncing various home-system configuration files.";
inputs = {
cargo2nix.url = "github:cargo2nix/cargo2nix/master";
flake-compat = {
url = github:edolstra/flake-compat;
flake = false;
};
flake-utils.url = "github:numtide/flake-utils";
nixpkgs.url = "github:nixos/nixpkgs/nixos-21.11";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
};
outputs = { self, cargo2nix, flake-compat, flake-utils, nixpkgs, rust-overlay }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [
(import "${cargo2nix}/overlay") rust-overlay.overlay
];
};
rustPkgs = pkgs.rustBuilder.makePackageSet' {
rustChannel = "1.56.1";
packageFun = import ./Cargo.nix;
};
in rec {
packages = {
homesync = (rustPkgs.workspace.homesync {}).bin;
};
defaultPackage = packages.homesync;
devShell = with pkgs; mkShell {
buildInputs = [
cargo
rls
libiconv
rustc
rustfmt
] ++ lib.optionals stdenv.isDarwin (
with darwin.apple_sdk.frameworks; [ CoreServices ]
) ++ lib.optionals stdenv.isLinux [
pkgs.openssl
pkgs.zlib
];
};
});
}