···
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
"x86_64-linux" # 64-bit Intel/AMD Linux
···
"x86_64-darwin" # 64-bit Intel macOS
"aarch64-darwin" # 64-bit ARM macOS
+
nixpkgs.lib.genAttrs allSystems (
+
pkgs = import nixpkgs { inherit system; };
+
packages = forAllSystems (
+
akami = pkgs.buildGoModule {
+
subPackages = [ "." ]; # Build from root directory
+
vendorHash = "sha256-9gO00c3D846SJl5dbtfj0qasmONLNxU/7V1TG6QEaxM=";
+
nativeBuildInputs = [ pkgs.installShellFiles ];
+
installShellCompletion --cmd crush \
+
--bash <($out/bin/crush completion bash) \
+
--fish <($out/bin/crush completion fish) \
+
--zsh <($out/bin/crush completion zsh)
+
# Generate and install man page
+
$out/bin/crush man > crush.1
+
meta = with pkgs.lib; {
+
description = "🌷 the cutsie hackatime helper";
+
homepage = "https://github.com/taciturnaxolotl/akami";
+
license = licenses.mit;
+
maintainers = with maintainers; [ taciturnaxolotl ];
+
platforms = platforms.linux ++ platforms.darwin;
+
devShells = forAllSystems (
+
default = pkgs.mkShell {
+
buildInputs = with pkgs; [
+
(pkgs.writeShellScriptBin "akami-dev" ''
+
go build -o ./bin/akami ./main.go
+
./bin/akami "$@" || true
+
(pkgs.writeShellScriptBin "akami-build" ''
+
echo "Building akami binaries for all platforms..."
+
# Build for Linux (64-bit)
+
echo "Building for Linux (x86_64)..."
+
GOOS=linux GOARCH=amd64 go build -o $PWD/bin/akami-linux-amd64 ./main.go
+
# Build for Linux ARM (64-bit)
+
echo "Building for Linux (aarch64)..."
+
GOOS=linux GOARCH=arm64 go build -o $PWD/bin/akami-linux-arm64 ./main.go
+
# Build for macOS (64-bit Intel)
+
echo "Building for macOS (x86_64)..."
+
GOOS=darwin GOARCH=amd64 go build -o $PWD/bin/akami-darwin-amd64 ./main.go
+
# Build for macOS ARM (64-bit)
+
echo "Building for macOS (aarch64)..."
+
GOOS=darwin GOARCH=arm64 go build -o $PWD/bin/akami-darwin-arm64 ./main.go
+
# Build for Windows (64-bit)
+
echo "Building for Windows (x86_64)..."
+
GOOS=windows GOARCH=amd64 go build -o $PWD/bin/akami-windows-amd64.exe ./main.go
+
echo "All binaries built successfully in $PWD/bin/"
+
export PATH=$PATH:$PWD/bin
+
program = "${self.packages.${pkgs.system}.default}/bin/akami";
+
pkgs.writeShellScript "akami-dev" ''
+
go build -o ./bin/akami ./main.go
+
program = "${self.devShells.${pkgs.system}.default.inputDerivation}/bin/akami-build";
+
formatter = forAllSystems ({ pkgs }: pkgs.nixfmt-tree);