diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3bf8c7d..8d0e1ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -102,7 +102,7 @@ jobs: vpk download github --repoUrl $env:REPO_URL --token $env:GITHUB_TOKEN --channel ${{ steps.version.outputs.channel }} @preFlag - name: Velopack pack - run: vpk pack --packId gclo --packVersion ${{ steps.version.outputs.version }} --packDir publish/app --mainExe gclo.exe --channel ${{ steps.version.outputs.channel }} + run: vpk pack --packId gclo --packVersion ${{ steps.version.outputs.version }} --packDir publish/app --mainExe gclo.exe --channel ${{ steps.version.outputs.channel }} --icon gclo/Assets/Brand/gclo.ico # This repo has immutable releases: assets freeze the moment a release is # PUBLISHED. So vpk creates a DRAFT (no --publish), every asset and the diff --git a/README.md b/README.md index d9b1b5c..8f4fbd9 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,14 @@ -# gclo — Git Clone Large Organizations +

+ gclo — Git Clone Large Organizations +

-**Clone an entire GitHub organization. Keep it up to date. In parallel.** +

Clone an entire GitHub organization. Keep it up to date. In parallel.

-[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE) -[![Platform: Windows 11](https://img.shields.io/badge/platform-Windows%2011-blue)](https://github.com/KofTwentyTwo/gclo) -[![.NET 10](https://img.shields.io/badge/.NET-10-blueviolet)](https://dotnet.microsoft.com/) +

+ License: MIT + Platform: Windows 11 + .NET 10 +

**gclo** (**G**it **C**lone **L**arge **O**rganizations) mirrors every repository of a GitHub organization or user account into a local folder in one pass: it clones the repositories that are missing and fast-forwards the ones that already exist, with live per-repo progress and bounded parallelism. It ships as a Windows 11 desktop app (WinUI 3) and a scriptable CLI built on the same engine. diff --git a/docs/images/gclo-lockup.png b/docs/images/gclo-lockup.png new file mode 100644 index 0000000..8641ef7 Binary files /dev/null and b/docs/images/gclo-lockup.png differ diff --git a/gclo.Cli/gclo.Cli.csproj b/gclo.Cli/gclo.Cli.csproj index e4452c3..221347d 100644 --- a/gclo.Cli/gclo.Cli.csproj +++ b/gclo.Cli/gclo.Cli.csproj @@ -8,6 +8,7 @@ gclo gclo.Cli true + ..\gclo\Assets\Brand\gclo.ico diff --git a/gclo/AboutDialog.xaml b/gclo/AboutDialog.xaml index 4765f19..45f8c35 100644 --- a/gclo/AboutDialog.xaml +++ b/gclo/AboutDialog.xaml @@ -13,7 +13,7 @@ - @@ -24,11 +24,14 @@ - + + + + + gclo is open source, released under the MIT License. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gclo/Assets/Brand/gclo.ico b/gclo/Assets/Brand/gclo.ico new file mode 100644 index 0000000..97ede39 Binary files /dev/null and b/gclo/Assets/Brand/gclo.ico differ diff --git a/gclo/Assets/LockScreenLogo.scale-100.png b/gclo/Assets/LockScreenLogo.scale-100.png new file mode 100644 index 0000000..a6b3a15 Binary files /dev/null and b/gclo/Assets/LockScreenLogo.scale-100.png differ diff --git a/gclo/Assets/LockScreenLogo.scale-125.png b/gclo/Assets/LockScreenLogo.scale-125.png new file mode 100644 index 0000000..353f00a Binary files /dev/null and b/gclo/Assets/LockScreenLogo.scale-125.png differ diff --git a/gclo/Assets/LockScreenLogo.scale-150.png b/gclo/Assets/LockScreenLogo.scale-150.png new file mode 100644 index 0000000..a8f7ce1 Binary files /dev/null and b/gclo/Assets/LockScreenLogo.scale-150.png differ diff --git a/gclo/Assets/LockScreenLogo.scale-200.png b/gclo/Assets/LockScreenLogo.scale-200.png index 3e6ddb8..3beb51a 100644 Binary files a/gclo/Assets/LockScreenLogo.scale-200.png and b/gclo/Assets/LockScreenLogo.scale-200.png differ diff --git a/gclo/Assets/LockScreenLogo.scale-400.png b/gclo/Assets/LockScreenLogo.scale-400.png new file mode 100644 index 0000000..e3c5298 Binary files /dev/null and b/gclo/Assets/LockScreenLogo.scale-400.png differ diff --git a/gclo/Assets/SplashScreen.scale-100.png b/gclo/Assets/SplashScreen.scale-100.png new file mode 100644 index 0000000..e26521d Binary files /dev/null and b/gclo/Assets/SplashScreen.scale-100.png differ diff --git a/gclo/Assets/SplashScreen.scale-125.png b/gclo/Assets/SplashScreen.scale-125.png new file mode 100644 index 0000000..803f842 Binary files /dev/null and b/gclo/Assets/SplashScreen.scale-125.png differ diff --git a/gclo/Assets/SplashScreen.scale-150.png b/gclo/Assets/SplashScreen.scale-150.png new file mode 100644 index 0000000..752ebb9 Binary files /dev/null and b/gclo/Assets/SplashScreen.scale-150.png differ diff --git a/gclo/Assets/SplashScreen.scale-200.png b/gclo/Assets/SplashScreen.scale-200.png index b755429..0556878 100644 Binary files a/gclo/Assets/SplashScreen.scale-200.png and b/gclo/Assets/SplashScreen.scale-200.png differ diff --git a/gclo/Assets/SplashScreen.scale-400.png b/gclo/Assets/SplashScreen.scale-400.png new file mode 100644 index 0000000..645d518 Binary files /dev/null and b/gclo/Assets/SplashScreen.scale-400.png differ diff --git a/gclo/Assets/Square150x150Logo.scale-100.png b/gclo/Assets/Square150x150Logo.scale-100.png new file mode 100644 index 0000000..20a46dd Binary files /dev/null and b/gclo/Assets/Square150x150Logo.scale-100.png differ diff --git a/gclo/Assets/Square150x150Logo.scale-125.png b/gclo/Assets/Square150x150Logo.scale-125.png new file mode 100644 index 0000000..3779e09 Binary files /dev/null and b/gclo/Assets/Square150x150Logo.scale-125.png differ diff --git a/gclo/Assets/Square150x150Logo.scale-150.png b/gclo/Assets/Square150x150Logo.scale-150.png new file mode 100644 index 0000000..e042ed1 Binary files /dev/null and b/gclo/Assets/Square150x150Logo.scale-150.png differ diff --git a/gclo/Assets/Square150x150Logo.scale-200.png b/gclo/Assets/Square150x150Logo.scale-200.png index 4aeb370..9d55a76 100644 Binary files a/gclo/Assets/Square150x150Logo.scale-200.png and b/gclo/Assets/Square150x150Logo.scale-200.png differ diff --git a/gclo/Assets/Square150x150Logo.scale-400.png b/gclo/Assets/Square150x150Logo.scale-400.png new file mode 100644 index 0000000..9ed7a52 Binary files /dev/null and b/gclo/Assets/Square150x150Logo.scale-400.png differ diff --git a/gclo/Assets/Square44x44Logo.scale-100.png b/gclo/Assets/Square44x44Logo.scale-100.png new file mode 100644 index 0000000..7e2bb26 Binary files /dev/null and b/gclo/Assets/Square44x44Logo.scale-100.png differ diff --git a/gclo/Assets/Square44x44Logo.scale-125.png b/gclo/Assets/Square44x44Logo.scale-125.png new file mode 100644 index 0000000..dcff2ca Binary files /dev/null and b/gclo/Assets/Square44x44Logo.scale-125.png differ diff --git a/gclo/Assets/Square44x44Logo.scale-150.png b/gclo/Assets/Square44x44Logo.scale-150.png new file mode 100644 index 0000000..27c3b9f Binary files /dev/null and b/gclo/Assets/Square44x44Logo.scale-150.png differ diff --git a/gclo/Assets/Square44x44Logo.scale-200.png b/gclo/Assets/Square44x44Logo.scale-200.png index 19e15ef..5e0ba77 100644 Binary files a/gclo/Assets/Square44x44Logo.scale-200.png and b/gclo/Assets/Square44x44Logo.scale-200.png differ diff --git a/gclo/Assets/Square44x44Logo.scale-400.png b/gclo/Assets/Square44x44Logo.scale-400.png new file mode 100644 index 0000000..0e4a3ac Binary files /dev/null and b/gclo/Assets/Square44x44Logo.scale-400.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-16.png b/gclo/Assets/Square44x44Logo.targetsize-16.png new file mode 100644 index 0000000..335ed4f Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-16.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-16_altform-unplated.png b/gclo/Assets/Square44x44Logo.targetsize-16_altform-unplated.png new file mode 100644 index 0000000..335ed4f Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-16_altform-unplated.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-24.png b/gclo/Assets/Square44x44Logo.targetsize-24.png new file mode 100644 index 0000000..a6b3a15 Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-24.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/gclo/Assets/Square44x44Logo.targetsize-24_altform-unplated.png index 1856cc0..a6b3a15 100644 Binary files a/gclo/Assets/Square44x44Logo.targetsize-24_altform-unplated.png and b/gclo/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-256.png b/gclo/Assets/Square44x44Logo.targetsize-256.png new file mode 100644 index 0000000..1cfe690 Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-256.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-256_altform-unplated.png b/gclo/Assets/Square44x44Logo.targetsize-256_altform-unplated.png new file mode 100644 index 0000000..1cfe690 Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-256_altform-unplated.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-32.png b/gclo/Assets/Square44x44Logo.targetsize-32.png new file mode 100644 index 0000000..707171d Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-32.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-32_altform-unplated.png b/gclo/Assets/Square44x44Logo.targetsize-32_altform-unplated.png new file mode 100644 index 0000000..707171d Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-32_altform-unplated.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-48.png b/gclo/Assets/Square44x44Logo.targetsize-48.png new file mode 100644 index 0000000..3beb51a Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-48.png differ diff --git a/gclo/Assets/Square44x44Logo.targetsize-48_altform-unplated.png b/gclo/Assets/Square44x44Logo.targetsize-48_altform-unplated.png new file mode 100644 index 0000000..3beb51a Binary files /dev/null and b/gclo/Assets/Square44x44Logo.targetsize-48_altform-unplated.png differ diff --git a/gclo/Assets/StoreLogo.png b/gclo/Assets/StoreLogo.png deleted file mode 100644 index 9c9b895..0000000 Binary files a/gclo/Assets/StoreLogo.png and /dev/null differ diff --git a/gclo/Assets/StoreLogo.scale-100.png b/gclo/Assets/StoreLogo.scale-100.png new file mode 100644 index 0000000..a0d5eb1 Binary files /dev/null and b/gclo/Assets/StoreLogo.scale-100.png differ diff --git a/gclo/Assets/StoreLogo.scale-125.png b/gclo/Assets/StoreLogo.scale-125.png new file mode 100644 index 0000000..2d88d96 Binary files /dev/null and b/gclo/Assets/StoreLogo.scale-125.png differ diff --git a/gclo/Assets/StoreLogo.scale-150.png b/gclo/Assets/StoreLogo.scale-150.png new file mode 100644 index 0000000..2c4e25b Binary files /dev/null and b/gclo/Assets/StoreLogo.scale-150.png differ diff --git a/gclo/Assets/StoreLogo.scale-200.png b/gclo/Assets/StoreLogo.scale-200.png new file mode 100644 index 0000000..4efd862 Binary files /dev/null and b/gclo/Assets/StoreLogo.scale-200.png differ diff --git a/gclo/Assets/StoreLogo.scale-400.png b/gclo/Assets/StoreLogo.scale-400.png new file mode 100644 index 0000000..67da4ba Binary files /dev/null and b/gclo/Assets/StoreLogo.scale-400.png differ diff --git a/gclo/Assets/Wide310x150Logo.scale-100.png b/gclo/Assets/Wide310x150Logo.scale-100.png new file mode 100644 index 0000000..fcae07d Binary files /dev/null and b/gclo/Assets/Wide310x150Logo.scale-100.png differ diff --git a/gclo/Assets/Wide310x150Logo.scale-125.png b/gclo/Assets/Wide310x150Logo.scale-125.png new file mode 100644 index 0000000..3e0af3d Binary files /dev/null and b/gclo/Assets/Wide310x150Logo.scale-125.png differ diff --git a/gclo/Assets/Wide310x150Logo.scale-150.png b/gclo/Assets/Wide310x150Logo.scale-150.png new file mode 100644 index 0000000..4855625 Binary files /dev/null and b/gclo/Assets/Wide310x150Logo.scale-150.png differ diff --git a/gclo/Assets/Wide310x150Logo.scale-200.png b/gclo/Assets/Wide310x150Logo.scale-200.png index d1fd67c..25192ad 100644 Binary files a/gclo/Assets/Wide310x150Logo.scale-200.png and b/gclo/Assets/Wide310x150Logo.scale-200.png differ diff --git a/gclo/Assets/Wide310x150Logo.scale-400.png b/gclo/Assets/Wide310x150Logo.scale-400.png new file mode 100644 index 0000000..e6ce438 Binary files /dev/null and b/gclo/Assets/Wide310x150Logo.scale-400.png differ diff --git a/gclo/MainWindow.xaml.cs b/gclo/MainWindow.xaml.cs index 0a3af36..5770fdc 100644 --- a/gclo/MainWindow.xaml.cs +++ b/gclo/MainWindow.xaml.cs @@ -99,6 +99,9 @@ namespace gclo double scale = GetDpiForWindow(hwnd) / 96.0; AppWindow.Resize(new Windows.Graphics.SizeInt32((int)(1000 * scale), (int)(750 * scale))); + // The brand icon in the title bar (and alt-tab / taskbar for unpackaged runs). + AppWindow.SetIcon(System.IO.Path.Combine(AppContext.BaseDirectory, "Assets", "Brand", "gclo.ico")); + // Keep the window from shrinking below a usable workspace layout. // PreferredMinimum* takes physical pixels like Resize (WinAppSDK 1.7+, // present in the installed SDK). If a future SDK removes these diff --git a/gclo/SplashOverlay.xaml b/gclo/SplashOverlay.xaml index cc29045..274eb2c 100644 --- a/gclo/SplashOverlay.xaml +++ b/gclo/SplashOverlay.xaml @@ -38,12 +38,17 @@ - + + Margin="0,0,0,16"> + + + + + + + + + + 10.0.17763.0 gclo app.manifest + Assets\Brand\gclo.ico x86;x64;ARM64 win-x86;win-x64;win-arm64 win-$(Platform).pubxml @@ -17,13 +18,12 @@ - - - - - - - + + + + +