Nix-shell shebang: Difference between revisions
imported>Tobias.bora mNo edit summary |
→C#: Add EntryPointFileDirectoryPath to sample, new in preview 6 |
||
| (4 intermediate revisions by 3 users not shown) | |||
| Line 32: | Line 32: | ||
convert "$1" -scale 50% "$1.s50.jpg" && | convert "$1" -scale 50% "$1.s50.jpg" && | ||
cowsay "done $1.q50.jpg" | cowsay "done $1.q50.jpg" | ||
</syntaxHighlight> | |||
=== C# === | |||
Using file-based apps, new in .NET 10: | |||
<syntaxHighlight lang="csharp"> | |||
#!/usr/bin/env nix-shell | |||
/* | |||
#! nix-shell -i dotnet -p dotnetCorePackages.dotnet_10.sdk | |||
*/ | |||
#:package Humanizer@2.14.1 | |||
using Humanizer; | |||
Environment.CurrentDirectory = (string) AppContext.GetData("EntryPointFileDirectoryPath")!; // equivalent of `cd $(dirname $0)` | |||
var dotNet9Released = DateTimeOffset.Parse("2024-12-03"); | |||
var since = DateTimeOffset.Now - dotNet9Released; | |||
Console.WriteLine($"It has been {since.Humanize()} since .NET 9 was released."); | |||
</syntaxHighlight> | </syntaxHighlight> | ||
| Line 133: | Line 154: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
The [https:// | The [https://nix.dev/manual/nix/2.19/command-ref/new-cli/nix3-shell doc] mentions that it should be possible to run more complex commands using multiple lines, but it does not work for me as reported [https://github.com/NixOS/nixpkgs/issues/280033 here]. | ||
| Line 150: | Line 171: | ||
* [https://gist.github.com/travisbhartwell/f972aab227306edfcfea nix-shell and Shebang Lines] | * [https://gist.github.com/travisbhartwell/f972aab227306edfcfea nix-shell and Shebang Lines] | ||
* [https://notes.yukiisbo.red/posts/2021/07/Spice_up_with_Nix_Scripts.html Spice up with Nix: Scripts with magical dependencies] | * [https://notes.yukiisbo.red/posts/2021/07/Spice_up_with_Nix_Scripts.html Spice up with Nix: Scripts with magical dependencies] | ||
[[Category:Nix]] | |||
[[Category:Shell]] | |||