From 858c557f65cfdce150794ad0ca35608134d44e65 Mon Sep 17 00:00:00 2001 From: Aaron Bieber Date: Wed, 31 May 2023 22:18:54 -0600 Subject: [PATCH] templates: add template for fyne --- templates/fyne/.envrc | 1 + templates/fyne/.gitignore | 3 ++ templates/fyne/LICENSE | 15 ++++++++ templates/fyne/flake.nix | 73 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 templates/fyne/.envrc create mode 100644 templates/fyne/.gitignore create mode 100644 templates/fyne/LICENSE create mode 100644 templates/fyne/flake.nix diff --git a/templates/fyne/.envrc b/templates/fyne/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/templates/fyne/.envrc @@ -0,0 +1 @@ +use flake diff --git a/templates/fyne/.gitignore b/templates/fyne/.gitignore new file mode 100644 index 0000000..64e2d48 --- /dev/null +++ b/templates/fyne/.gitignore @@ -0,0 +1,3 @@ +.direnv +*.bak +result diff --git a/templates/fyne/LICENSE b/templates/fyne/LICENSE new file mode 100644 index 0000000..a122d8a --- /dev/null +++ b/templates/fyne/LICENSE @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2022 Aaron Bieber + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/templates/fyne/flake.nix b/templates/fyne/flake.nix new file mode 100644 index 0000000..ebf113e --- /dev/null +++ b/templates/fyne/flake.nix @@ -0,0 +1,73 @@ +{ + description = "thing: stuff and things"; + + inputs.nixpkgs.url = "nixpkgs/nixos-23.05"; + + outputs = { self, nixpkgs }: + let + supportedSystems = + [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); + in { + overlay = _: prev: { inherit (self.packages.${prev.system}) thing; }; + + packages = forAllSystems (system: + let pkgs = nixpkgsFor.${system}; + in { + thing = pkgs.buildGoModule { + pname = "thing"; + version = "v0.0.0"; + src = ./.; + + vendorHash = pkgs.lib.fakeSha256; + proxyVendor = true; + + nativeBuildInputs = with pkgs; [ pkg-config ]; + buildInputs = with pkgs; [ + git + glfw + libGL + libGLU + openssh + pkg-config + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXrandr + xorg.libXxf86vm + xorg.xinput + ]; + }; + }); + + defaultPackage = forAllSystems (system: self.packages.${system}.thing); + devShells = forAllSystems (system: + let pkgs = nixpkgsFor.${system}; + in { + default = pkgs.mkShell { + shellHook = '' + PS1='\u@\h:\@; ' + nix flake run github:qbit/xin#flake-warn + echo "Go `${pkgs.go}/bin/go version`" + ''; + buildInputs = with pkgs; [ + git + go_1_20 + gopls + go-tools + + glfw + pkg-config + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXrandr + xorg.libXxf86vm + xorg.xinput + ]; + }; + }); + }; +} +