51 lines
1.4 KiB
Nix
51 lines
1.4 KiB
Nix
{
|
|
description = "A simple Go program for switching windows on Sway wm";
|
|
|
|
# Nixpkgs / NixOS version to use.
|
|
inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
}: let
|
|
# to work with older version of flakes
|
|
lastModifiedDate = self.lastModifiedDate or self.lastModified or "19700101";
|
|
|
|
# Generate a user-friendly version number.
|
|
version = builtins.substring 0 8 lastModifiedDate;
|
|
|
|
# System types to support.
|
|
supportedSystems = ["x86_64-linux" "aarch64-linux"];
|
|
|
|
# Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
|
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
|
|
|
# Nixpkgs instantiated for supported system types.
|
|
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
|
in {
|
|
# Provide some binary packages for selected system types.
|
|
packages = forAllSystems (system: let
|
|
pkgs = nixpkgsFor.${system};
|
|
in {
|
|
swaysw = pkgs.buildGoModule {
|
|
pname = "swaysw";
|
|
inherit version;
|
|
src = ./.;
|
|
ldFlags = ["-s -w"];
|
|
vendorHash = null;
|
|
|
|
};
|
|
});
|
|
|
|
devShells = forAllSystems (system: let
|
|
pkgs = nixpkgsFor.${system};
|
|
in {
|
|
default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [go gopls gotools go-tools wofi];
|
|
};
|
|
});
|
|
|
|
defaultPackage = forAllSystems (system: self.packages.${system}.swaysw);
|
|
};
|
|
}
|