Loading pkgs/by-name/so/sourcegit/deps.json 0 → 100644 +232 −0 Original line number Diff line number Diff line [ { "pname": "Avalonia", "version": "11.0.0", "hash": "sha256-7QE0MtD1QDiG3gRx5xW33E33BXyEtASQSw+Wi3Lmy3E=" }, { "pname": "Avalonia", "version": "11.2.3", "hash": "sha256-NUoyXJkIsgbkcKFVb10VRafM4ViHs801c/7vhu3ssUY=" }, { "pname": "Avalonia.Angle.Windows.Natives", "version": "2.1.22045.20230930", "hash": "sha256-RxPcWUT3b/+R3Tu5E5ftpr5ppCLZrhm+OTsi0SwW3pc=" }, { "pname": "Avalonia.AvaloniaEdit", "version": "11.1.0", "hash": "sha256-K9+hK+4aK93dyuGytYvVU25daz605+KN54hmwQYXFF8=" }, { "pname": "Avalonia.BuildServices", "version": "0.0.29", "hash": "sha256-WPHRMNowRnYSCh88DWNBCltWsLPyOfzXGzBqLYE7tRY=" }, { "pname": "Avalonia.Controls.ColorPicker", "version": "11.2.3", "hash": "sha256-z3ZHxVSOoOjqq+5G71jnGN1Y0i3YpAkox7cj3lNr6kg=" }, { "pname": "Avalonia.Controls.DataGrid", "version": "11.2.3", "hash": "sha256-jIJvuYN0iym/WeOC0C7z5xj5kCZSXGoeLQ/q5qQfewM=" }, { "pname": "Avalonia.Desktop", "version": "11.2.3", "hash": "sha256-srtZi+kDbhRtMl33l91zssBWETU5oHodKbbWyfEsb/I=" }, { "pname": "Avalonia.Diagnostics", "version": "11.2.3", "hash": "sha256-DIGkaBff+C3BLwedw5xteR5lfzb6ecxiLt12eJVgLQc=" }, { "pname": "Avalonia.Fonts.Inter", "version": "11.2.3", "hash": "sha256-ySsCXVpjqjCX/uYkwluSfrAoBtuq9k7fC1bFjxKC9/Q=" }, { "pname": "Avalonia.FreeDesktop", "version": "11.2.3", "hash": "sha256-3sNemBmZE06w2ul87T5HrEeHUxXMOa9MfQhpI4AoxDY=" }, { "pname": "Avalonia.Native", "version": "11.2.3", "hash": "sha256-2Gp98NGWcrILqF+P5PDMPRdsMby/lZiT3eWAUskFim8=" }, { "pname": "Avalonia.Remote.Protocol", "version": "11.2.3", "hash": "sha256-dSeu7rnTD9rIvlyro2iFS52oi0vvfeaGV3kDm90BkKw=" }, { "pname": "Avalonia.Skia", "version": "11.0.0", "hash": "sha256-A01nrs3Ij1eTo6tPmu7++T1K+Wo/H/9LvpeuOUGbQeU=" }, { "pname": "Avalonia.Skia", "version": "11.2.3", "hash": "sha256-QBp8wTA92hGwbmNSVL4gsjrqA9CfwDPgdTiOEqcogGA=" }, { "pname": "Avalonia.Themes.Fluent", "version": "11.2.3", "hash": "sha256-DRl+267mUtJDUJpreUj6BxDLGGYGkEEo5vDGtGguoC8=" }, { "pname": "Avalonia.Themes.Simple", "version": "11.2.3", "hash": "sha256-UF15yTDzHmqd33siH3TJxmxaonA51dzga+hmCUahn1k=" }, { "pname": "Avalonia.Win32", "version": "11.2.3", "hash": "sha256-xKFKObvqdJaQjphEktRJvzmAoDEsKg3WqlEG31V3qLE=" }, { "pname": "Avalonia.X11", "version": "11.2.3", "hash": "sha256-SD4dmpKx4l8YOyUnrA0fnf2Bb+tHSNyARh7GAtHyg60=" }, { "pname": "AvaloniaEdit.TextMate", "version": "11.1.0", "hash": "sha256-Nv52bUxA02VcsKCbMqEAkNBl46gznSivRZ3llLHrhkM=" }, { "pname": "CommunityToolkit.Mvvm", "version": "8.3.2", "hash": "sha256-zY+iB5Rj/8ru0xpRWwFLFO6JI3UFB/XHnx9pWmrZCAs=" }, { "pname": "HarfBuzzSharp", "version": "7.3.0.2", "hash": "sha256-ibgoqzT1NV7Qo5e7X2W6Vt7989TKrkd2M2pu+lhSDg8=" }, { "pname": "HarfBuzzSharp", "version": "7.3.0.3", "hash": "sha256-1vDIcG1aVwVABOfzV09eAAbZLFJqibip9LaIx5k+JxM=" }, { "pname": "HarfBuzzSharp.NativeAssets.Linux", "version": "7.3.0.3", "hash": "sha256-HW5r16wdlgDMbE/IfE5AQGDVFJ6TS6oipldfMztx+LM=" }, { "pname": "HarfBuzzSharp.NativeAssets.macOS", "version": "7.3.0.3", "hash": "sha256-UpAVfRIYY8Wh8xD4wFjrXHiJcvlBLuc2Xdm15RwQ76w=" }, { "pname": "HarfBuzzSharp.NativeAssets.WebAssembly", "version": "7.3.0.3", "hash": "sha256-jHrU70rOADAcsVfVfozU33t/5B5Tk0CurRTf4fVQe3I=" }, { "pname": "HarfBuzzSharp.NativeAssets.Win32", "version": "7.3.0.3", "hash": "sha256-v/PeEfleJcx9tsEQAo5+7Q0XPNgBqiSLNnB2nnAGp+I=" }, { "pname": "LiveChartsCore", "version": "2.0.0-rc4.5", "hash": "sha256-2Fgn9Bo1aM6dZHCU+OVykOhggTzpcEfFNfYtWc4yvHc=" }, { "pname": "LiveChartsCore.SkiaSharpView", "version": "2.0.0-rc4.5", "hash": "sha256-03RR14tA0DtYHiLdgmAI4Gp5/e2H6QPkNFOBeqiFaJU=" }, { "pname": "LiveChartsCore.SkiaSharpView.Avalonia", "version": "2.0.0-rc4.5", "hash": "sha256-lzG/5e6WDpUiHZ8GvovOMvwXyYoVBeB1Ktuuw2Fx5No=" }, { "pname": "MicroCom.Runtime", "version": "0.11.0", "hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0=" }, { "pname": "Onigwrap", "version": "1.0.6", "hash": "sha256-p+dhMfIH4C6xLKRUREnUpC0DZwFazjvI+30KRT8TWnU=" }, { "pname": "SkiaSharp", "version": "2.88.8", "hash": "sha256-rD5gc4SnlRTXwz367uHm8XG5eAIQpZloGqLRGnvNu0A=" }, { "pname": "SkiaSharp", "version": "2.88.9", "hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24=" }, { "pname": "SkiaSharp.HarfBuzz", "version": "2.88.8", "hash": "sha256-W9jNuEo/8q+k2aHNC19FfKcBUIEWx2zDcGwM+jDZ1o8=" }, { "pname": "SkiaSharp.NativeAssets.Linux", "version": "2.88.9", "hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A=" }, { "pname": "SkiaSharp.NativeAssets.macOS", "version": "2.88.9", "hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g=" }, { "pname": "SkiaSharp.NativeAssets.WebAssembly", "version": "2.88.9", "hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY=" }, { "pname": "SkiaSharp.NativeAssets.Win32", "version": "2.88.9", "hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4=" }, { "pname": "System.IO.Pipelines", "version": "8.0.0", "hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE=" }, { "pname": "System.Text.Json", "version": "8.0.5", "hash": "sha256-yKxo54w5odWT6nPruUVsaX53oPRe+gKzGvLnnxtwP68=" }, { "pname": "TextMateSharp", "version": "1.0.59", "hash": "sha256-qfAGSgVpTrWMZSk0TFDVP1IgWWi6O1jEEvWc0Pvw9i0=" }, { "pname": "TextMateSharp", "version": "1.0.65", "hash": "sha256-kZx3CBDzu7qUSnihs9Q4Ck78ih1aJ+0g8cN8Hke+E5w=" }, { "pname": "TextMateSharp.Grammars", "version": "1.0.59", "hash": "sha256-ru5VxQK4PFRJhHu+MvCzDt3EwbC/94n1whtDovUAUDA=" }, { "pname": "TextMateSharp.Grammars", "version": "1.0.65", "hash": "sha256-tZx/GKYX3bomQFVFaEgneNYHpB74v+8D90IfkYImlhE=" }, { "pname": "Tmds.DBus.Protocol", "version": "0.20.0", "hash": "sha256-CRW/tkgsuBiBJfRwou12ozRQsWhHDooeP88E5wWpWJw=" } ] pkgs/by-name/so/sourcegit/fix-darwin-git-path.patch 0 → 100644 +31 −0 Original line number Diff line number Diff line diff --git a/src/Native/Linux.cs b/src/Native/Linux.cs index a24f1b6..4102274 100644 --- a/src/Native/Linux.cs +++ b/src/Native/Linux.cs @@ -97,7 +97,7 @@ namespace SourceGit.Native } } - private string FindExecutable(string filename) + public static string FindExecutable(string filename) { var pathVariable = Environment.GetEnvironmentVariable("PATH") ?? string.Empty; var pathes = pathVariable.Split(Path.PathSeparator, StringSplitOptions.RemoveEmptyEntries); diff --git a/src/Native/MacOS.cs b/src/Native/MacOS.cs index 5721fe8..bc2a57d 100644 --- a/src/Native/MacOS.cs +++ b/src/Native/MacOS.cs @@ -25,12 +25,7 @@ namespace SourceGit.Native public string FindGitExecutable() { - var gitPathVariants = new List<string>() { - "/usr/bin/git", "/usr/local/bin/git", "/opt/homebrew/bin/git", "/opt/homebrew/opt/git/bin/git" - }; - foreach (var path in gitPathVariants) - if (File.Exists(path)) return path; - return string.Empty; + return Linux.FindExecutable("git"); } public string FindTerminal(Models.ShellOrTerminal shell) pkgs/by-name/so/sourcegit/package.nix 0 → 100644 +117 −0 Original line number Diff line number Diff line { lib, stdenv, buildDotnetModule, fetchFromGitHub, dotnetCorePackages, copyDesktopItems, makeDesktopItem, libicns, libXcursor, libXext, libXi, libXrandr, git, xdg-utils, }: buildDotnetModule (finalAttrs: { pname = "sourcegit"; version = "2025.01"; src = fetchFromGitHub { owner = "sourcegit-scm"; repo = "sourcegit"; tag = "v${finalAttrs.version}"; hash = "sha256-6FO0WRUcWm7xnuw6Br97+cWZhvzIOesg/eANZzeyxZo="; }; patches = [ ./fix-darwin-git-path.patch ]; dotnet-sdk = dotnetCorePackages.sdk_9_0; dotnet-runtime = dotnetCorePackages.runtime_9_0; nugetDeps = ./deps.json; projectFile = [ "src/SourceGit.csproj" ]; executables = [ "SourceGit" ]; dotnetFlags = [ "-p:DisableUpdateDetection=true" "-p:DisableAOT=true" ]; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems libicns ]; # these are dlopen-ed at runtime # libXi is needed for right-click support # not sure about what the other ones are needed for, but I'll include them anyways runtimeDeps = [ libXcursor libXext libXi libXrandr ]; # Note: users can use `.overrideAttrs` to append to this list runtimePathDeps = [ git xdg-utils ]; # add fallback binaries to use if the user doesn't already have them in their PATH preInstall = '' makeWrapperArgs+=( --suffix PATH : ${lib.makeBinPath finalAttrs.runtimePathDeps} ) ''; desktopItems = [ (makeDesktopItem { name = "SourceGit"; exec = "SourceGit"; icon = "SourceGit"; desktopName = "SourceGit"; terminal = false; comment = finalAttrs.meta.description; }) ]; postInstall = lib.optionalString stdenv.hostPlatform.isLinux '' # extract the .icns file into multiple .png files # where the format of the .png file names is App_"$n"x"$n"x32.png icns2png -x build/resources/app/App.icns for f in App_*x32.png; do res=''${f//App_} res=''${res//x32.png} install -Dm644 $f "$out/share/icons/hicolor/$res/apps/SourceGit.png" done '' + lib.optionalString stdenv.hostPlatform.isDarwin '' install -Dm644 build/resources/app/App.icns $out/Applications/SourceGit.app/Contents/Resources/App.icns substitute build/resources/app/App.plist $out/Applications/SourceGit.app/Contents/Info.plist \ --replace-fail "SOURCE_GIT_VERSION" "${finalAttrs.version}" mkdir -p $out/Applications/SourceGit.app/Contents/MacOS ln -s $out/bin/SourceGit $out/Applications/SourceGit.app/Contents/MacOS/SourceGit ''; meta = { changelog = "https://github.com/sourcegit-scm/sourcegit/releases/tag/${finalAttrs.src.tag}"; description = "Free & OpenSource GUI client for GIT users"; homepage = "https://github.com/sourcegit-scm/sourcegit"; license = lib.licenses.mit; mainProgram = "SourceGit"; maintainers = with lib.maintainers; [ tomasajt ]; }; }) Loading
pkgs/by-name/so/sourcegit/deps.json 0 → 100644 +232 −0 Original line number Diff line number Diff line [ { "pname": "Avalonia", "version": "11.0.0", "hash": "sha256-7QE0MtD1QDiG3gRx5xW33E33BXyEtASQSw+Wi3Lmy3E=" }, { "pname": "Avalonia", "version": "11.2.3", "hash": "sha256-NUoyXJkIsgbkcKFVb10VRafM4ViHs801c/7vhu3ssUY=" }, { "pname": "Avalonia.Angle.Windows.Natives", "version": "2.1.22045.20230930", "hash": "sha256-RxPcWUT3b/+R3Tu5E5ftpr5ppCLZrhm+OTsi0SwW3pc=" }, { "pname": "Avalonia.AvaloniaEdit", "version": "11.1.0", "hash": "sha256-K9+hK+4aK93dyuGytYvVU25daz605+KN54hmwQYXFF8=" }, { "pname": "Avalonia.BuildServices", "version": "0.0.29", "hash": "sha256-WPHRMNowRnYSCh88DWNBCltWsLPyOfzXGzBqLYE7tRY=" }, { "pname": "Avalonia.Controls.ColorPicker", "version": "11.2.3", "hash": "sha256-z3ZHxVSOoOjqq+5G71jnGN1Y0i3YpAkox7cj3lNr6kg=" }, { "pname": "Avalonia.Controls.DataGrid", "version": "11.2.3", "hash": "sha256-jIJvuYN0iym/WeOC0C7z5xj5kCZSXGoeLQ/q5qQfewM=" }, { "pname": "Avalonia.Desktop", "version": "11.2.3", "hash": "sha256-srtZi+kDbhRtMl33l91zssBWETU5oHodKbbWyfEsb/I=" }, { "pname": "Avalonia.Diagnostics", "version": "11.2.3", "hash": "sha256-DIGkaBff+C3BLwedw5xteR5lfzb6ecxiLt12eJVgLQc=" }, { "pname": "Avalonia.Fonts.Inter", "version": "11.2.3", "hash": "sha256-ySsCXVpjqjCX/uYkwluSfrAoBtuq9k7fC1bFjxKC9/Q=" }, { "pname": "Avalonia.FreeDesktop", "version": "11.2.3", "hash": "sha256-3sNemBmZE06w2ul87T5HrEeHUxXMOa9MfQhpI4AoxDY=" }, { "pname": "Avalonia.Native", "version": "11.2.3", "hash": "sha256-2Gp98NGWcrILqF+P5PDMPRdsMby/lZiT3eWAUskFim8=" }, { "pname": "Avalonia.Remote.Protocol", "version": "11.2.3", "hash": "sha256-dSeu7rnTD9rIvlyro2iFS52oi0vvfeaGV3kDm90BkKw=" }, { "pname": "Avalonia.Skia", "version": "11.0.0", "hash": "sha256-A01nrs3Ij1eTo6tPmu7++T1K+Wo/H/9LvpeuOUGbQeU=" }, { "pname": "Avalonia.Skia", "version": "11.2.3", "hash": "sha256-QBp8wTA92hGwbmNSVL4gsjrqA9CfwDPgdTiOEqcogGA=" }, { "pname": "Avalonia.Themes.Fluent", "version": "11.2.3", "hash": "sha256-DRl+267mUtJDUJpreUj6BxDLGGYGkEEo5vDGtGguoC8=" }, { "pname": "Avalonia.Themes.Simple", "version": "11.2.3", "hash": "sha256-UF15yTDzHmqd33siH3TJxmxaonA51dzga+hmCUahn1k=" }, { "pname": "Avalonia.Win32", "version": "11.2.3", "hash": "sha256-xKFKObvqdJaQjphEktRJvzmAoDEsKg3WqlEG31V3qLE=" }, { "pname": "Avalonia.X11", "version": "11.2.3", "hash": "sha256-SD4dmpKx4l8YOyUnrA0fnf2Bb+tHSNyARh7GAtHyg60=" }, { "pname": "AvaloniaEdit.TextMate", "version": "11.1.0", "hash": "sha256-Nv52bUxA02VcsKCbMqEAkNBl46gznSivRZ3llLHrhkM=" }, { "pname": "CommunityToolkit.Mvvm", "version": "8.3.2", "hash": "sha256-zY+iB5Rj/8ru0xpRWwFLFO6JI3UFB/XHnx9pWmrZCAs=" }, { "pname": "HarfBuzzSharp", "version": "7.3.0.2", "hash": "sha256-ibgoqzT1NV7Qo5e7X2W6Vt7989TKrkd2M2pu+lhSDg8=" }, { "pname": "HarfBuzzSharp", "version": "7.3.0.3", "hash": "sha256-1vDIcG1aVwVABOfzV09eAAbZLFJqibip9LaIx5k+JxM=" }, { "pname": "HarfBuzzSharp.NativeAssets.Linux", "version": "7.3.0.3", "hash": "sha256-HW5r16wdlgDMbE/IfE5AQGDVFJ6TS6oipldfMztx+LM=" }, { "pname": "HarfBuzzSharp.NativeAssets.macOS", "version": "7.3.0.3", "hash": "sha256-UpAVfRIYY8Wh8xD4wFjrXHiJcvlBLuc2Xdm15RwQ76w=" }, { "pname": "HarfBuzzSharp.NativeAssets.WebAssembly", "version": "7.3.0.3", "hash": "sha256-jHrU70rOADAcsVfVfozU33t/5B5Tk0CurRTf4fVQe3I=" }, { "pname": "HarfBuzzSharp.NativeAssets.Win32", "version": "7.3.0.3", "hash": "sha256-v/PeEfleJcx9tsEQAo5+7Q0XPNgBqiSLNnB2nnAGp+I=" }, { "pname": "LiveChartsCore", "version": "2.0.0-rc4.5", "hash": "sha256-2Fgn9Bo1aM6dZHCU+OVykOhggTzpcEfFNfYtWc4yvHc=" }, { "pname": "LiveChartsCore.SkiaSharpView", "version": "2.0.0-rc4.5", "hash": "sha256-03RR14tA0DtYHiLdgmAI4Gp5/e2H6QPkNFOBeqiFaJU=" }, { "pname": "LiveChartsCore.SkiaSharpView.Avalonia", "version": "2.0.0-rc4.5", "hash": "sha256-lzG/5e6WDpUiHZ8GvovOMvwXyYoVBeB1Ktuuw2Fx5No=" }, { "pname": "MicroCom.Runtime", "version": "0.11.0", "hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0=" }, { "pname": "Onigwrap", "version": "1.0.6", "hash": "sha256-p+dhMfIH4C6xLKRUREnUpC0DZwFazjvI+30KRT8TWnU=" }, { "pname": "SkiaSharp", "version": "2.88.8", "hash": "sha256-rD5gc4SnlRTXwz367uHm8XG5eAIQpZloGqLRGnvNu0A=" }, { "pname": "SkiaSharp", "version": "2.88.9", "hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24=" }, { "pname": "SkiaSharp.HarfBuzz", "version": "2.88.8", "hash": "sha256-W9jNuEo/8q+k2aHNC19FfKcBUIEWx2zDcGwM+jDZ1o8=" }, { "pname": "SkiaSharp.NativeAssets.Linux", "version": "2.88.9", "hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A=" }, { "pname": "SkiaSharp.NativeAssets.macOS", "version": "2.88.9", "hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g=" }, { "pname": "SkiaSharp.NativeAssets.WebAssembly", "version": "2.88.9", "hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY=" }, { "pname": "SkiaSharp.NativeAssets.Win32", "version": "2.88.9", "hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4=" }, { "pname": "System.IO.Pipelines", "version": "8.0.0", "hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE=" }, { "pname": "System.Text.Json", "version": "8.0.5", "hash": "sha256-yKxo54w5odWT6nPruUVsaX53oPRe+gKzGvLnnxtwP68=" }, { "pname": "TextMateSharp", "version": "1.0.59", "hash": "sha256-qfAGSgVpTrWMZSk0TFDVP1IgWWi6O1jEEvWc0Pvw9i0=" }, { "pname": "TextMateSharp", "version": "1.0.65", "hash": "sha256-kZx3CBDzu7qUSnihs9Q4Ck78ih1aJ+0g8cN8Hke+E5w=" }, { "pname": "TextMateSharp.Grammars", "version": "1.0.59", "hash": "sha256-ru5VxQK4PFRJhHu+MvCzDt3EwbC/94n1whtDovUAUDA=" }, { "pname": "TextMateSharp.Grammars", "version": "1.0.65", "hash": "sha256-tZx/GKYX3bomQFVFaEgneNYHpB74v+8D90IfkYImlhE=" }, { "pname": "Tmds.DBus.Protocol", "version": "0.20.0", "hash": "sha256-CRW/tkgsuBiBJfRwou12ozRQsWhHDooeP88E5wWpWJw=" } ]
pkgs/by-name/so/sourcegit/fix-darwin-git-path.patch 0 → 100644 +31 −0 Original line number Diff line number Diff line diff --git a/src/Native/Linux.cs b/src/Native/Linux.cs index a24f1b6..4102274 100644 --- a/src/Native/Linux.cs +++ b/src/Native/Linux.cs @@ -97,7 +97,7 @@ namespace SourceGit.Native } } - private string FindExecutable(string filename) + public static string FindExecutable(string filename) { var pathVariable = Environment.GetEnvironmentVariable("PATH") ?? string.Empty; var pathes = pathVariable.Split(Path.PathSeparator, StringSplitOptions.RemoveEmptyEntries); diff --git a/src/Native/MacOS.cs b/src/Native/MacOS.cs index 5721fe8..bc2a57d 100644 --- a/src/Native/MacOS.cs +++ b/src/Native/MacOS.cs @@ -25,12 +25,7 @@ namespace SourceGit.Native public string FindGitExecutable() { - var gitPathVariants = new List<string>() { - "/usr/bin/git", "/usr/local/bin/git", "/opt/homebrew/bin/git", "/opt/homebrew/opt/git/bin/git" - }; - foreach (var path in gitPathVariants) - if (File.Exists(path)) return path; - return string.Empty; + return Linux.FindExecutable("git"); } public string FindTerminal(Models.ShellOrTerminal shell)
pkgs/by-name/so/sourcegit/package.nix 0 → 100644 +117 −0 Original line number Diff line number Diff line { lib, stdenv, buildDotnetModule, fetchFromGitHub, dotnetCorePackages, copyDesktopItems, makeDesktopItem, libicns, libXcursor, libXext, libXi, libXrandr, git, xdg-utils, }: buildDotnetModule (finalAttrs: { pname = "sourcegit"; version = "2025.01"; src = fetchFromGitHub { owner = "sourcegit-scm"; repo = "sourcegit"; tag = "v${finalAttrs.version}"; hash = "sha256-6FO0WRUcWm7xnuw6Br97+cWZhvzIOesg/eANZzeyxZo="; }; patches = [ ./fix-darwin-git-path.patch ]; dotnet-sdk = dotnetCorePackages.sdk_9_0; dotnet-runtime = dotnetCorePackages.runtime_9_0; nugetDeps = ./deps.json; projectFile = [ "src/SourceGit.csproj" ]; executables = [ "SourceGit" ]; dotnetFlags = [ "-p:DisableUpdateDetection=true" "-p:DisableAOT=true" ]; nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems libicns ]; # these are dlopen-ed at runtime # libXi is needed for right-click support # not sure about what the other ones are needed for, but I'll include them anyways runtimeDeps = [ libXcursor libXext libXi libXrandr ]; # Note: users can use `.overrideAttrs` to append to this list runtimePathDeps = [ git xdg-utils ]; # add fallback binaries to use if the user doesn't already have them in their PATH preInstall = '' makeWrapperArgs+=( --suffix PATH : ${lib.makeBinPath finalAttrs.runtimePathDeps} ) ''; desktopItems = [ (makeDesktopItem { name = "SourceGit"; exec = "SourceGit"; icon = "SourceGit"; desktopName = "SourceGit"; terminal = false; comment = finalAttrs.meta.description; }) ]; postInstall = lib.optionalString stdenv.hostPlatform.isLinux '' # extract the .icns file into multiple .png files # where the format of the .png file names is App_"$n"x"$n"x32.png icns2png -x build/resources/app/App.icns for f in App_*x32.png; do res=''${f//App_} res=''${res//x32.png} install -Dm644 $f "$out/share/icons/hicolor/$res/apps/SourceGit.png" done '' + lib.optionalString stdenv.hostPlatform.isDarwin '' install -Dm644 build/resources/app/App.icns $out/Applications/SourceGit.app/Contents/Resources/App.icns substitute build/resources/app/App.plist $out/Applications/SourceGit.app/Contents/Info.plist \ --replace-fail "SOURCE_GIT_VERSION" "${finalAttrs.version}" mkdir -p $out/Applications/SourceGit.app/Contents/MacOS ln -s $out/bin/SourceGit $out/Applications/SourceGit.app/Contents/MacOS/SourceGit ''; meta = { changelog = "https://github.com/sourcegit-scm/sourcegit/releases/tag/${finalAttrs.src.tag}"; description = "Free & OpenSource GUI client for GIT users"; homepage = "https://github.com/sourcegit-scm/sourcegit"; license = lib.licenses.mit; mainProgram = "SourceGit"; maintainers = with lib.maintainers; [ tomasajt ]; }; })