Skip to content

Commit c934263

Browse files
socgrsocrat3z
andauthored
Bun Package Manager (#4767)
Co-authored-by: socrat3z <socrat3z@gmail.com>
1 parent 1121c35 commit c934263

22 files changed

Lines changed: 1583 additions & 4 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
[![Release Version Badge](https://img.shields.io/github/v/release/Devolutions/UniGetUI?style=for-the-badge)](https://github.com/Devolutions/UniGetUI/releases)
1212
[![Issues Badge](https://img.shields.io/github/issues/Devolutions/UniGetUI?style=for-the-badge)](https://github.com/Devolutions/UniGetUI/issues)
1313
[![Closed Issues Badge](https://img.shields.io/github/issues-closed/Devolutions/UniGetUI?color=%238256d0&style=for-the-badge)](https://github.com/Devolutions/UniGetUI/issues?q=is%3Aissue+is%3Aclosed)<br>
14-
UniGetUI is an intuitive GUI for the most common CLI package managers on Windows 10 and 11, including [WinGet](https://learn.microsoft.com/en-us/windows/package-manager/), [Scoop](https://scoop.sh/), [Chocolatey](https://chocolatey.org/), [pip](https://pypi.org/), [npm](https://www.npmjs.com/), [.NET Tool](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-install), [PowerShell Gallery](https://www.powershellgallery.com/), and more.
14+
UniGetUI is an intuitive GUI for the most common CLI package managers on Windows 10 and 11, including [WinGet](https://learn.microsoft.com/en-us/windows/package-manager/), [Scoop](https://scoop.sh/), [Chocolatey](https://chocolatey.org/), [pip](https://pypi.org/), [npm](https://www.npmjs.com/), [Bun](https://bun.sh/), [.NET Tool](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-install), [PowerShell Gallery](https://www.powershellgallery.com/), and more.
1515
With UniGetUI, you can discover, install, update, and uninstall software from multiple package managers through one interface.
1616

1717
![image](https://github.com/user-attachments/assets/7cb447ca-ee8b-4bce-8561-b9332fb0139a)
@@ -92,7 +92,7 @@ UniGetUI has a built-in autoupdater. However, it can also be updated like any ot
9292

9393
## Features
9494

95-
- Install, update, and remove software from your system easily at one click: UniGetUI combines the packages from the most used package managers for windows: Winget, Chocolatey, Scoop, Pip, Npm and .NET Tool.
95+
- Install, update, and remove software from your system easily at one click: UniGetUI combines the packages from the most used package managers for windows: Winget, Chocolatey, Scoop, Pip, Npm, Bun and .NET Tool.
9696
- Discover new packages and filter them to easily find the package you want.
9797
- View detailed metadata about any package before installing it. Get the direct download URL or the name of the publisher, as well as the size of the download.
9898
- Easily bulk-install, update, or uninstall multiple packages at once selecting multiple packages before performing an operation

docs/CLI.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Related environment variables:
5151
- `--source` maps to `--package-source`
5252
- Boolean options use explicit values such as `--enabled true` or `--wait false`.
5353
- `--detach` is shorthand for asynchronous package operations (`--wait false`).
54-
- `--manager` uses stable manager ids, not GUI labels. Current ids: `apt`, `cargo`, `chocolatey`, `dnf`, `dotnet-tool`, `flatpak`, `homebrew`, `npm`, `pacman`, `pip`, `pwsh`, `scoop`, `snap`, `vcpkg`, `winget`, and `winps`.
54+
- `--manager` uses stable manager ids, not GUI labels. Current ids: `apt`, `bun`, `cargo`, `chocolatey`, `dnf`, `dotnet-tool`, `flatpak`, `homebrew`, `npm`, `pacman`, `pip`, `pwsh`, `scoop`, `snap`, `vcpkg`, `winget`, and `winps`.
5555

5656
## Command reference
5757

src/UniGetUI.Avalonia.slnx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@
135135
<Platform Solution="*|x64" Project="x64" />
136136
</Project>
137137
</Folder>
138+
<Folder Name="/UniGetUI.PackageEngine.Managers.Bun/">
139+
<Project Path="UniGetUI.PackageEngine.Managers.Bun/UniGetUI.PackageEngine.Managers.Bun.csproj">
140+
<Platform Solution="*|arm64" Project="arm64" />
141+
<Platform Solution="*|x64" Project="x64" />
142+
</Project>
143+
</Folder>
138144
<Folder Name="/UniGetUI.PackageEngine.Managers.Cargo/">
139145
<Project Path="UniGetUI.PackageEngine.Managers.Cargo/UniGetUI.PackageEngine.Managers.Cargo.csproj">
140146
<Platform Solution="*|arm64" Project="arm64" />

src/UniGetUI.Avalonia/Views/Pages/SettingsPages/PackageManagerPage.axaml.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,20 @@ private void BuildExtraControls(CheckboxCard_Dict disableNotifsCard)
459459
});
460460
break;
461461

462+
case "Bun":
463+
disableNotifsCard.CornerRadius = new CornerRadius(8, 8, 0, 0);
464+
disableNotifsCard.BorderThickness = new Thickness(1, 1, 1, 0);
465+
ExtraControls.Children.Add(disableNotifsCard);
466+
467+
ExtraControls.Children.Add(new CheckboxCard
468+
{
469+
CornerRadius = new CornerRadius(0, 0, 8, 8),
470+
BorderThickness = new Thickness(1, 0, 1, 1),
471+
SettingName = CoreSettings.K.BunPreferLatestVersions,
472+
Text = CoreTools.Translate("Prefer latest versions (may include breaking changes) instead of recommended safe updates"),
473+
});
474+
break;
475+
462476
case "vcpkg":
463477
disableNotifsCard.CornerRadius = new CornerRadius(8, 8, 0, 0);
464478
disableNotifsCard.BorderThickness = new Thickness(1, 1, 1, 0);

src/UniGetUI.Core.Settings/SettingsEngine_Names.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public enum K
9191
WinGetComApiPolicy,
9292
DisableClassicMode,
9393
DisableInstallerHostChangeWarning,
94+
BunPreferLatestVersions,
9495

9596
Test1,
9697
Test2,
@@ -193,6 +194,7 @@ public static string ResolveKey(K key)
193194
K.WinGetComApiPolicy => "WinGetComApiPolicy",
194195
K.DisableClassicMode => "DisableClassicMode",
195196
K.DisableInstallerHostChangeWarning => "DisableInstallerHostChangeWarning",
197+
K.BunPreferLatestVersions => "BunPreferLatestVersions",
196198

197199
K.Test1 => "TestSetting1",
198200
K.Test2 => "TestSetting2",

src/UniGetUI.Interface.Enums/Enums.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public enum IconType
9090
Pacman = '\uE946',
9191
Snap = '\uE947',
9292
Flatpak = '\uE948',
93+
Bun = '\uE949',
9394
}
9495

9596
public class NotificationArguments

0 commit comments

Comments
 (0)