diff --git a/templates/android/flake.nix b/templates/android/flake.nix index eff18fd..83e255a 100644 --- a/templates/android/flake.nix +++ b/templates/android/flake.nix @@ -38,6 +38,7 @@ pkgs, system, self', + ... }: { _module.args.pkgs = import nixpkgs { config.allowUnfree = true; diff --git a/templates/dotnet/DotnetApplication/DotnetApplication.csproj b/templates/dotnet/DotnetApplication/DotnetApplication.csproj new file mode 100644 index 0000000..fd4bd08 --- /dev/null +++ b/templates/dotnet/DotnetApplication/DotnetApplication.csproj @@ -0,0 +1,10 @@ + + + + Exe + net9.0 + enable + enable + + + diff --git a/templates/dotnet/DotnetApplication/Program.cs b/templates/dotnet/DotnetApplication/Program.cs new file mode 100644 index 0000000..760e08b --- /dev/null +++ b/templates/dotnet/DotnetApplication/Program.cs @@ -0,0 +1,9 @@ +using System; + +namespace DotnetApplication { + class Program { + static void Main(string[] args) { + Console.WriteLine("Hello, world!"); + } + } +} diff --git a/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.dgspec.json b/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.dgspec.json new file mode 100644 index 0000000..32bac24 --- /dev/null +++ b/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.dgspec.json @@ -0,0 +1,68 @@ +{ + "format": 1, + "restore": { + "/home/artur/Projects/C#/JSchlattVideoGame/JSchlattVideoGame.csproj": {} + }, + "projects": { + "/home/artur/Projects/C#/JSchlattVideoGame/JSchlattVideoGame.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/artur/Projects/C#/JSchlattVideoGame/JSchlattVideoGame.csproj", + "projectName": "JSchlattVideoGame", + "projectPath": "/home/artur/Projects/C#/JSchlattVideoGame/JSchlattVideoGame.csproj", + "packagesPath": "/home/artur/.nuget/packages/", + "outputPath": "/home/artur/Projects/C#/JSchlattVideoGame/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/artur/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "/nix/store/0w5k79zvjzingpnzz07ijqjbgsylcgfa-dotnet-sdk-9.0.100/share/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "all" + }, + "SdkAnalysisLevel": "9.0.100" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/nix/store/0w5k79zvjzingpnzz07ijqjbgsylcgfa-dotnet-sdk-9.0.100/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.g.props b/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.g.props new file mode 100644 index 0000000..2cac44f --- /dev/null +++ b/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/artur/.nuget/packages/ + /home/artur/.nuget/packages/ + PackageReference + 6.12.0 + + + + + \ No newline at end of file diff --git a/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.g.targets b/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/templates/dotnet/DotnetApplication/obj/JSchlattVideoGame.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/templates/dotnet/DotnetApplication/obj/project.assets.json b/templates/dotnet/DotnetApplication/obj/project.assets.json new file mode 100644 index 0000000..c348176 --- /dev/null +++ b/templates/dotnet/DotnetApplication/obj/project.assets.json @@ -0,0 +1,73 @@ +{ + "version": 3, + "targets": { + "net9.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net9.0": [] + }, + "packageFolders": { + "/home/artur/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/artur/Projects/C#/JSchlattVideoGame/JSchlattVideoGame.csproj", + "projectName": "JSchlattVideoGame", + "projectPath": "/home/artur/Projects/C#/JSchlattVideoGame/JSchlattVideoGame.csproj", + "packagesPath": "/home/artur/.nuget/packages/", + "outputPath": "/home/artur/Projects/C#/JSchlattVideoGame/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/artur/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "/nix/store/0w5k79zvjzingpnzz07ijqjbgsylcgfa-dotnet-sdk-9.0.100/share/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "all" + }, + "SdkAnalysisLevel": "9.0.100" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/nix/store/0w5k79zvjzingpnzz07ijqjbgsylcgfa-dotnet-sdk-9.0.100/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/templates/dotnet/DotnetApplication/obj/project.nuget.cache b/templates/dotnet/DotnetApplication/obj/project.nuget.cache new file mode 100644 index 0000000..f8e1195 --- /dev/null +++ b/templates/dotnet/DotnetApplication/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "1YIpH04Ngl4=", + "success": true, + "projectFilePath": "/home/artur/Projects/C#/JSchlattVideoGame/JSchlattVideoGame.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file diff --git a/templates/dotnet/flake.lock b/templates/dotnet/flake.lock new file mode 100644 index 0000000..7a552b1 --- /dev/null +++ b/templates/dotnet/flake.lock @@ -0,0 +1,58 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1733212471, + "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/templates/dotnet/flake.nix b/templates/dotnet/flake.nix new file mode 100644 index 0000000..249217f --- /dev/null +++ b/templates/dotnet/flake.nix @@ -0,0 +1,42 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; + }; + + outputs = inputs @ { + self, + nixpkgs, + ... + }: + inputs.flake-parts.lib.mkFlake {inherit inputs;} { + systems = ["x86_64-linux"]; + flake.overlays.default = final: prev: { + dotnet-application = final.callPackage ./nix/derivation.nix {}; + }; + perSystem = { + pkgs, + system, + self', + ... + }: { + _module.args.pkgs = import nixpkgs { + inherit system; + overlays = [ + self.overlays.default + ]; + }; + + packages = { + inherit (pkgs) dotnet-application; + default = self'.packages.dotnet-application; + }; + + devShells.default = pkgs.mkShell { + packages = [ + pkgs.dotnetCorePackages.dotnet_9.sdk + ]; + }; + }; + }; +} diff --git a/templates/dotnet/nix/derivation.nix b/templates/dotnet/nix/derivation.nix new file mode 100644 index 0000000..9cb5f34 --- /dev/null +++ b/templates/dotnet/nix/derivation.nix @@ -0,0 +1,13 @@ +{ + buildDotnetModule, + dotnetCorePackages, +}: +buildDotnetModule { + pname = "DotnetApplication"; + version = "0.1.0"; + src = ../.; + projectFile = "DotnetApplication/DotnetApplication.csproj"; + dotnet-sdk = dotnetCorePackages.dotnet_9.sdk; + dotnet-runtime = dotnetCorePackages.dotnet_9.runtime; + executables = ["DotnetApplication"]; +} diff --git a/templates/dotnet/nix/shell.nix b/templates/dotnet/nix/shell.nix new file mode 100644 index 0000000..01e72da --- /dev/null +++ b/templates/dotnet/nix/shell.nix @@ -0,0 +1,9 @@ +{ + mkShell, + dotnetCorePackages, +}: +mkShell { + packages = [ + dotnetCorePackages.dotnet_9.sdk + ]; +}