Rename published packages and installers from maturita-* to graduately-*.

Keep temporary legacy aliases on the builds branch so older updaters still find downloads.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-09-23 21:30:03 +02:00
commit bce63459d1
35 changed files with 197 additions and 158 deletions

View file

@ -43,8 +43,8 @@ jobs:
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: maturita-linux
path: dist/maturita-linux-*.AppImage
name: graduately-linux
path: dist/graduately-linux-*.AppImage
windows:
name: Windows zip
@ -73,16 +73,16 @@ jobs:
run: |
make bundle
cd dist
zip -qry ../maturita-windows-x64.zip .
zip -qry ../graduately-windows-x64.zip .
cd ..
mkdir -p dist-out
mv maturita-windows-x64.zip dist-out/
mv graduately-windows-x64.zip dist-out/
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: maturita-windows
path: dist-out/maturita-windows-x64.zip
name: graduately-windows
path: dist-out/graduately-windows-x64.zip
macos:
name: macOS app
@ -137,8 +137,8 @@ jobs:
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: maturita-macos
path: dist/maturita-macos-*.zip
name: graduately-macos
path: dist/graduately-macos-*.zip
android:
name: Android APK
@ -183,13 +183,13 @@ jobs:
./gradlew :app:assembleRelease --no-daemon
mkdir -p ../dist-android
cp app/build/outputs/apk/release/app-release.apk \
../dist-android/maturita-android.apk
../dist-android/graduately-android.apk
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: maturita-android
path: dist-android/maturita-android.apk
name: graduately-android
path: dist-android/graduately-android.apk
ios:
name: iOS IPA
@ -209,8 +209,8 @@ jobs:
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: maturita-ios
path: dist-ios/maturita-ios.ipa
name: graduately-ios
path: dist-ios/graduately-ios.ipa
publish:
name: Publish to builds branch
@ -240,19 +240,26 @@ jobs:
run: |
set -euo pipefail
cp -f fresh/* staged/ 2>/dev/null || true
rm -f staged/maturita-macos-swift-*.zip staged/VERSION-macos-swift
rm -f staged/graduately-macos-swift-*.zip staged/VERSION-macos-swift
chmod +x installers/pack-installer-zips.sh
./installers/pack-installer-zips.sh
cp installers/maturita-installer-linux.sh staged/
cp installers/maturita-installer-windows.cmd staged/
cp installers/maturita-installer-*.zip staged/
cp installers/graduately-installer-linux.sh staged/
cp installers/graduately-installer-windows.cmd staged/
cp installers/graduately-installer-*.zip staged/
# The updaters download this to see whether they are behind.
echo "${{ github.sha }}" > staged/VERSION
# Per-platform markers name the commit whose package is really
# here, so a platform that failed this run is not offered as new.
[ -f fresh/maturita-android.apk ] && echo "${{ github.sha }}" > staged/VERSION-android
[ -f fresh/maturita-ios.ipa ] && echo "${{ github.sha }}" > staged/VERSION-ios
ls fresh/maturita-macos-*.zip >/dev/null 2>&1 && echo "${{ github.sha }}" > staged/VERSION-macos
[ -f fresh/graduately-android.apk ] && echo "${{ github.sha }}" > staged/VERSION-android
[ -f fresh/graduately-ios.ipa ] && echo "${{ github.sha }}" > staged/VERSION-ios
ls fresh/graduately-macos-*.zip >/dev/null 2>&1 && echo "${{ github.sha }}" > staged/VERSION-macos
# Compatibility aliases so older installers/updaters still find packages.
[ -f staged/graduately-macos-arm64.zip ] && cp -f staged/graduately-macos-arm64.zip staged/maturita-macos-arm64.zip
[ -f staged/graduately-macos-x86_64.zip ] && cp -f staged/graduately-macos-x86_64.zip staged/maturita-macos-x86_64.zip
[ -f staged/graduately-windows-x64.zip ] && cp -f staged/graduately-windows-x64.zip staged/maturita-windows-x64.zip
[ -f staged/graduately-linux-x86_64.AppImage ] && cp -f staged/graduately-linux-x86_64.AppImage staged/maturita-linux-x86_64.AppImage
[ -f staged/graduately-android.apk ] && cp -f staged/graduately-android.apk staged/maturita-android.apk
[ -f staged/graduately-ios.ipa ] && cp -f staged/graduately-ios.ipa staged/maturita-ios.ipa
ls fresh staged
# The branch is rewritten from scratch every time rather than added to,

2
.gitignore vendored
View file

@ -1,6 +1,8 @@
# Binaries and build trees
/maturita
/maturita.exe
/graduately
/graduately.exe
/build/
/dist/
/progress/

View file

@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.16)
project(maturita C)
project(graduately C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
@ -40,33 +40,33 @@ else()
pkg_check_modules(GTK4 REQUIRED IMPORTED_TARGET gtk4)
endif()
file(GLOB MATURITA_SOURCES CONFIGURE_DEPENDS
file(GLOB GRADUATELY_SOURCES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/src/*.c")
if(WIN32)
add_executable(maturita WIN32 ${MATURITA_SOURCES}
add_executable(graduately WIN32 ${GRADUATELY_SOURCES}
"${CMAKE_CURRENT_SOURCE_DIR}/data/windows/maturita.rc")
else()
add_executable(maturita ${MATURITA_SOURCES})
add_executable(graduately ${GRADUATELY_SOURCES})
endif()
target_include_directories(maturita PRIVATE
target_include_directories(graduately PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/src")
if(DEFINED APP_COMMIT AND NOT APP_COMMIT STREQUAL "")
target_compile_definitions(maturita PRIVATE APP_COMMIT="${APP_COMMIT}")
target_compile_definitions(graduately PRIVATE APP_COMMIT="${APP_COMMIT}")
endif()
if(MSVC)
target_compile_options(maturita PRIVATE ${GTK4_CFLAGS})
target_link_options(maturita PRIVATE ${GTK4_LIBS})
target_link_options(maturita PRIVATE /ENTRY:mainCRTStartup)
target_compile_definitions(maturita PRIVATE _CRT_SECURE_NO_WARNINGS)
target_compile_options(graduately PRIVATE ${GTK4_CFLAGS})
target_link_options(graduately PRIVATE ${GTK4_LIBS})
target_link_options(graduately PRIVATE /ENTRY:mainCRTStartup)
target_compile_definitions(graduately PRIVATE _CRT_SECURE_NO_WARNINGS)
else()
target_link_libraries(maturita PRIVATE PkgConfig::GTK4 m)
target_compile_options(maturita PRIVATE
target_link_libraries(graduately PRIVATE PkgConfig::GTK4 m)
target_compile_options(graduately PRIVATE
-Wall -Wextra -Wno-deprecated-declarations)
if(APPLE)
target_link_libraries(maturita PRIVATE
target_link_libraries(graduately PRIVATE
"-framework AppKit" "-framework Foundation")
endif()
endif()
@ -74,18 +74,18 @@ endif()
# Runtime assets sit next to the binary after install / cmake --build.
set(ICON_512
"${CMAKE_CURRENT_SOURCE_DIR}/data/share/icons/hicolor/512x512/apps/maturita.png")
add_custom_command(TARGET maturita POST_BUILD
add_custom_command(TARGET graduately POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/data/style.css
$<TARGET_FILE_DIR:maturita>/style.css
$<TARGET_FILE_DIR:graduately>/style.css
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/data/changelog.txt
$<TARGET_FILE_DIR:maturita>/changelog.txt
$<TARGET_FILE_DIR:graduately>/changelog.txt
COMMAND ${CMAKE_COMMAND} -E make_directory
$<TARGET_FILE_DIR:maturita>/icons/hicolor/512x512/apps
$<TARGET_FILE_DIR:graduately>/icons/hicolor/512x512/apps
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${ICON_512}
$<TARGET_FILE_DIR:maturita>/icons/hicolor/512x512/apps/maturita.png
$<TARGET_FILE_DIR:graduately>/icons/hicolor/512x512/apps/maturita.png
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/data/share
$<TARGET_FILE_DIR:maturita>/share)
$<TARGET_FILE_DIR:graduately>/share)

View file

@ -28,14 +28,14 @@ CFLAGS += -DAPP_COMMIT='"$(COMMIT)"'
endif
ifeq ($(OS),Windows_NT)
TARGET = maturita.exe
TARGET = graduately.exe
LIBS += -mwindows
WINDRES ?= windres
RC_SRC = $(DATA_DIR)/windows/maturita.rc
RC_OBJ = $(BUILD_DIR)/maturita_rc.o
UNAME_S :=
else
TARGET = maturita
TARGET = graduately
RC_SRC =
RC_OBJ =
UNAME_S := $(shell uname -s 2>/dev/null)
@ -71,7 +71,7 @@ $(TARGET): $(OBJ)
endif
clean:
rm -f $(TARGET) maturita.exe
rm -f $(TARGET) graduately.exe maturita.exe maturita
rm -rf $(BUILD_DIR)
run: $(TARGET)

View file

@ -27,11 +27,11 @@ větve.
| Platforma | Soubor | Jak spustit |
| --------- | ------ | ----------- |
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-macos.zip) | Rozbalit, pravý klik na **Nainstalovat Graduately** → **Otevřít** |
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-windows.zip) | Rozbalit a dvojklik; u SmartScreenu **Další informace → Přesto spustit** |
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-linux.zip) | Rozbalit a dvojklik na instalátor |
| Android (8+) | [maturita-installer-android.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-android.zip) | Rozbalit, otevřít **Stahnout Graduately.html** a nainstalovat APK (neznámé zdroje) |
| iOS (26+) | [maturita-installer-ios.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-ios.zip) | Rozbalit, otevřít **Jak nainstalovat Graduately.html**. Nejjednodušší: Xcode na Macu, nebo IPA přes AltStore |
| macOS (Apple Silicon) | [graduately-installer-macos.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-macos.zip) | Rozbalit, pravý klik na **Nainstalovat Graduately** → **Otevřít** |
| Windows (x64) | [graduately-installer-windows.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-windows.zip) | Rozbalit a dvojklik; u SmartScreenu **Další informace → Přesto spustit** |
| Linux (x86_64) | [graduately-installer-linux.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-linux.zip) | Rozbalit a dvojklik na instalátor |
| Android (8+) | [graduately-installer-android.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-android.zip) | Rozbalit, otevřít **Stahnout Graduately.html** a nainstalovat APK (neznámé zdroje) |
| iOS (26+) | [graduately-installer-ios.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-ios.zip) | Rozbalit, otevřít **Jak nainstalovat Graduately.html**. Nejjednodušší: Xcode na Macu, nebo IPA přes AltStore |
Kam se to nainstaluje: `/Applications` nebo `~/Applications` (macOS),
`%LOCALAPPDATA%\Programs\Graduately` (Windows), `~/Applications` (Linux).
@ -48,11 +48,11 @@ Na větvi [`builds`](https://github.com/pepaskopec-blip/Graduately/tree/builds)
jsou i hotové balíčky. Odkazy podle názvu větve umí CDN kešovat, proto je
spolehlivější instalátor výše, nebo stažení přímo z té stránky větve:
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-macos-arm64.zip)
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-windows-x64.zip)
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-linux-x86_64.AppImage)
- [maturita-android.apk](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-android.apk)
- [maturita-ios.ipa](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-ios.ipa)
- [graduately-macos-arm64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/graduately-macos-arm64.zip)
- [graduately-windows-x64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/graduately-windows-x64.zip)
- [graduately-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/Graduately/raw/builds/graduately-linux-x86_64.AppImage)
- [graduately-android.apk](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/graduately-android.apk)
- [graduately-ios.ipa](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/graduately-ios.ipa)
Postup a nastavení se ukládají vedle `.app` / složky / AppImage do `progress/`.
Na Androidu, iOS a macOS do úložiště aplikace (stejné statistiky, témata a jazyk).
@ -106,14 +106,14 @@ Na Macu:
```bash
open Maturita.xcworkspace # scheme Maturita z macos/Maturita.xcodeproj
# nebo: make bundle # zip v dist/maturita-macos-arm64.zip
# nebo: make bundle # zip v dist/graduately-macos-arm64.zip
```
Na Linuxu a Windows:
```bash
make
make run # nebo ./maturita
make run # nebo ./graduately
make bundle # AppImage / Windows složka s DLL
make smoke # instalátory, content packs, dostupnost builds
```
@ -146,8 +146,8 @@ V terminálu **MSYS2 UCRT64**:
```bash
cd /c/Users/<jméno>/Graduately # C:\Users\<jméno>\Graduately v MSYS2
make
./maturita.exe
make bundle # dist/maturita.exe jde spustit i z Průzkumníka
./graduately.exe
make bundle # dist/graduately.exe jde spustit i z Průzkumníka
```
### Struktura
@ -188,12 +188,12 @@ iOS ze zdroje (Xcode 26, iOS 26+ / Liquid Glass):
open Maturita.xcworkspace # v kořeni repozitáře
# Simulátor: vyber iPhone a Run, nic dalšího není potřeba (obsah se
# vytáhne z C zdrojů při buildu). Na iPhone: v Signing vyber svůj Team.
# nebo: make ios # unsigned IPA v dist-ios/maturita-ios.ipa
# nebo: make ios # unsigned IPA v dist-ios/graduately-ios.ipa
```
Workspace odkazuje na `ios/Maturita.xcodeproj` a `macos/Maturita.xcodeproj`.
Projekty nepřesouvejte – build čte `../src` a `../scripts` a v kořeni by
`Maturita/` kolidovalo se zkompilovaným binárem `maturita`.
`Maturita/` kolidovalo se zkompilovaným binárem `graduately`.
Licence: [GPL-3.0](LICENSE).
@ -220,11 +220,11 @@ branch-named file.
| Platform | File | How to run |
| -------- | ---- | ---------- |
| macOS (Apple Silicon) | [maturita-installer-macos.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-macos.zip) | Unzip, right-click **Nainstalovat Graduately** → **Open** |
| Windows (x64) | [maturita-installer-windows.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-windows.zip) | Unzip and double-click; if SmartScreen appears, **More info → Run anyway** |
| Linux (x86_64) | [maturita-installer-linux.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-linux.zip) | Unzip and double-click the installer |
| Android (8+) | [maturita-installer-android.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-android.zip) | Unzip, open **Stahnout Graduately.html**, then install the APK (unknown sources) |
| iOS (26+) | [maturita-installer-ios.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/maturita-installer-ios.zip) | Unzip, open **Jak nainstalovat Graduately.html**. Easiest: Xcode on a Mac, or the IPA via AltStore |
| macOS (Apple Silicon) | [graduately-installer-macos.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-macos.zip) | Unzip, right-click **Nainstalovat Graduately** → **Open** |
| Windows (x64) | [graduately-installer-windows.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-windows.zip) | Unzip and double-click; if SmartScreen appears, **More info → Run anyway** |
| Linux (x86_64) | [graduately-installer-linux.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-linux.zip) | Unzip and double-click the installer |
| Android (8+) | [graduately-installer-android.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-android.zip) | Unzip, open **Stahnout Graduately.html**, then install the APK (unknown sources) |
| iOS (26+) | [graduately-installer-ios.zip](https://github.com/pepaskopec-blip/Graduately/raw/main/installers/graduately-installer-ios.zip) | Unzip, open **Jak nainstalovat Graduately.html**. Easiest: Xcode on a Mac, or the IPA via AltStore |
Install locations: `/Applications` or `~/Applications` (macOS),
`%LOCALAPPDATA%\Programs\Graduately` (Windows), `~/Applications` (Linux).
@ -241,11 +241,11 @@ The same files live on
Branch-named raw URLs can be cached by the CDN, so prefer the installer
above, or download from that branch page:
- [maturita-macos-arm64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-macos-arm64.zip)
- [maturita-windows-x64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-windows-x64.zip)
- [maturita-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/Graduately/raw/builds/maturita-linux-x86_64.AppImage)
- [maturita-android.apk](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-android.apk)
- [maturita-ios.ipa](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/maturita-ios.ipa)
- [graduately-macos-arm64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/graduately-macos-arm64.zip)
- [graduately-windows-x64.zip](https://github.com/pepaskopec-blip/Graduately/raw/builds/graduately-windows-x64.zip)
- [graduately-linux-x86_64.AppImage](https://github.com/pepaskopec-blip/Graduately/raw/builds/graduately-linux-x86_64.AppImage)
- [graduately-android.apk](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/graduately-android.apk)
- [graduately-ios.ipa](https://github.com/pepaskopec-blip/Graduately/raw/refs/heads/builds/graduately-ios.ipa)
Progress and settings live in `progress/` next to the `.app` / folder /
AppImage. On Android, iOS and macOS they stay in app storage (same stats, themes, language).
@ -300,14 +300,14 @@ On a Mac:
```bash
open Maturita.xcworkspace # scheme Maturita from macos/Maturita.xcodeproj
# or: make bundle # zip at dist/maturita-macos-arm64.zip
# or: make bundle # zip at dist/graduately-macos-arm64.zip
```
On Linux and Windows:
```bash
make
make run # or ./maturita
make run # or ./graduately
make bundle # AppImage / Windows DLL folder
make smoke # installers, content packs, builds availability
```
@ -340,8 +340,8 @@ In an **MSYS2 UCRT64** terminal:
```bash
cd /c/Users/<name>/Graduately # C:\Users\<name>\Graduately in MSYS2
make
./maturita.exe
make bundle # dist/maturita.exe can be double-clicked
./graduately.exe
make bundle # dist/graduately.exe can be double-clicked
```
### Layout
@ -382,7 +382,7 @@ iOS from source (Xcode 26, iOS 26+ / Liquid Glass):
open Maturita.xcworkspace # at the repo root
# Simulator: pick an iPhone and Run, nothing else needed (content is
# extracted from the C sources during the build). Device: pick your Team.
# or: make ios # unsigned IPA at dist-ios/maturita-ios.ipa
# or: make ios # unsigned IPA at dist-ios/graduately-ios.ipa
```
The workspace points at `ios/Maturita.xcodeproj` and `macos/Maturita.xcodeproj`.

View file

@ -91,9 +91,9 @@ class Updater(private val app: Application) {
val remote = remoteAndroidCommit(atom, head)
// Pin the download to the commit: the branch-named URL can be
// served from a stale CDN cache (even a cached 404).
val url = "https://raw.githubusercontent.com/$repo/$head/maturita-android.apk"
val url = "https://raw.githubusercontent.com/$repo/$head/graduately-android.apk"
val dir = File(app.cacheDir, "updates").apply { mkdirs() }
val apk = File(dir, "maturita.apk")
val apk = File(dir, "graduately.apk")
download(url, apk)
if (!isOurApk(apk)) {
apk.delete()

View file

@ -74,7 +74,7 @@ if not exist "assets\app-icon.ico" (
)
REM --- 4. Compile resources + sources ---------------------------------------
echo Building maturita.exe with MSVC...
echo Building graduately.exe with MSVC...
if not exist build mkdir build
rc /nologo /fo build\maturita.res data\windows\maturita.rc
if errorlevel 1 (
@ -84,7 +84,7 @@ if errorlevel 1 (
cl /nologo /O2 /MD /W3 /std:c11 /I src /D_CRT_SECURE_NO_WARNINGS ^
%GTK_CFLAGS% src\*.c build\maturita.res ^
/Fe:maturita.exe /Fo:build\ ^
/Fe:graduately.exe /Fo:build\ ^
/link /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup %GTK_LIBS%
if errorlevel 1 (
@ -96,6 +96,6 @@ if not exist icons\hicolor\512x512\apps mkdir icons\hicolor\512x512\apps
copy /Y assets\app-icon.png icons\hicolor\512x512\apps\maturita.png >nul
echo.
echo Built maturita.exe ^(icon embedded from assets\app-icon.ico^)
echo Run it from this terminal with: maturita.exe
echo Or use run-windows.bat / double-click maturita.exe.
echo Built graduately.exe ^(icon embedded from assets\app-icon.ico^)
echo Run it from this terminal with: graduately.exe
echo Or use run-windows.bat / double-click graduately.exe.

View file

@ -8,6 +8,7 @@
--- 2026-09-23
cs: Repozitář se jmenuje Graduately (GitHub i Forgejo); instalátory a updater míří tam
cs: Balíčky a instalátory se jmenují graduately-* (už ne maturita-*)
cs: Aplikace se jmenuje Graduately; úvod stále říká „Maturita? To dáme.“
cs: Kompletní maturitní četba (82 knih) se zápisky, kvízem a sestavením děje
cs: Studium knih: nejdřív procvičení (kvíz / sestavte děj), pak zápisky
@ -16,6 +17,7 @@ cs: Větší a čitelnější rozhraní na Macu
cs: Opravy výběru slov v dialogu a otevření knihy z vyhledávání
cs: Oprava zrcadlení na Forgejo (edu/Graduately, plná historie, force-push)
en: Repository renamed to Graduately (GitHub and Forgejo); installers and updater follow
en: Packages and installers are now graduately-* (no more maturita-*)
en: The app is now Graduately; the welcome line still says “Maturita? We've got this.”
en: Full maturita reading list (82 books) with notes, quiz, and plot ordering
en: Book study flow: practice first (quiz / order the plot), then notes

View file

@ -6,7 +6,7 @@ GenericName=Graduately study app
GenericName[cs]=Příprava na maturitu
Comment=Educational GTK app for Czech maturita exam preparation
Comment[cs]=Vzdělávací GTK aplikace pro přípravu na maturitu
Exec=maturita
Exec=graduately
Icon=maturita
Terminal=false
Categories=Education;GTK;

View file

@ -1,3 +1,3 @@
/* Windows application icon embedded into maturita.exe.
/* Windows application icon embedded into graduately.exe.
* The first ICON resource becomes the Explorer / taskbar icon. */
1 ICON "../../assets/app-icon.ico"

View file

@ -31,14 +31,14 @@
<p>Klepni na tlačítko. Až se APK stáhne, otevři ho a povol instalaci z neznámých zdrojů.</p>
<p>
<a class="btn" id="dl"
href="https://raw.githubusercontent.com/pepaskopec-blip/Graduately/refs/heads/builds/maturita-android.apk">
href="https://raw.githubusercontent.com/pepaskopec-blip/Graduately/refs/heads/builds/graduately-android.apk">
Stáhnout APK
</a>
</p>
<p>
Když odkaz hlásí 404, otevři
<a href="https://github.com/pepaskopec-blip/Graduately/tree/builds">větev builds</a>
a stáhni <code>maturita-android.apk</code> odtud.
a stáhni <code>graduately-android.apk</code> odtud.
</p>
<script>
(function () {
@ -48,7 +48,7 @@
.then(function (d) {
if (d && d.sha) {
document.getElementById("dl").href =
"https://raw.githubusercontent.com/" + repo + "/" + d.sha + "/maturita-android.apk";
"https://raw.githubusercontent.com/" + repo + "/" + d.sha + "/graduately-android.apk";
}
})
.catch(function () {});

Binary file not shown.

Binary file not shown.

View file

@ -5,17 +5,17 @@
# raw.githubusercontent.com, so this script looks up the tip of `builds`
# and downloads that commit — not a stale AppImage from the last five minutes.
#
# Double-click the file (or run: sh maturita-installer-linux.sh).
# Double-click the file (or run: sh graduately-installer-linux.sh).
# The app updates itself from then on.
set -eu
REPO="pepaskopec-blip/Graduately"
BRANCH="builds"
ASSET="maturita-linux-x86_64.AppImage"
ASSET="graduately-linux-x86_64.AppImage"
DEST_DIR="$HOME/Applications"
DEST="$DEST_DIR/maturita.AppImage"
DEST="$DEST_DIR/graduately.AppImage"
DESKTOP_DIR="$HOME/.local/share/applications"
ICON_DIR="$HOME/.local/share/icons/hicolor/512x512/apps"
@ -54,10 +54,13 @@ say "Looking up the latest build..."
sha=$(builds_sha)
[ ${#sha} -eq 40 ] || die "could not find the latest build on GitHub."
URL="https://raw.githubusercontent.com/$REPO/$sha/$ASSET"
LEGACY_URL="https://raw.githubusercontent.com/$REPO/$sha/maturita-linux-x86_64.AppImage"
say "Downloading build $(printf '%.7s' "$sha")..."
curl -fL --progress-bar --max-time 1800 -o "$tmp/$ASSET" "$URL" ||
if ! curl -fL --progress-bar --max-time 1800 -o "$tmp/$ASSET" "$URL"; then
curl -fL --progress-bar --max-time 1800 -o "$tmp/$ASSET" "$LEGACY_URL" ||
die "the download failed. Check your internet connection."
fi
say "Installing to $DEST"
chmod +x "$tmp/$ASSET"

Binary file not shown.

View file

@ -11,7 +11,7 @@ set -eu
REPO="pepaskopec-blip/Graduately"
BRANCH="builds"
ASSET="maturita-macos-arm64.zip"
ASSET="graduately-macos-arm64.zip"
# An .app has no TTY; show dialogs so a regular user never needs Terminal.
GUI=0
@ -97,13 +97,27 @@ fi
sha=$(builds_sha)
[ ${#sha} -eq 40 ] || die "Nepodařilo se najít aktuální verzi na GitHubu."
URL="https://raw.githubusercontent.com/$REPO/$sha/$ASSET"
LEGACY_ASSET="maturita-macos-arm64.zip"
LEGACY_URL="https://raw.githubusercontent.com/$REPO/$sha/$LEGACY_ASSET"
download_ok=0
if [ "$GUI" = 1 ]; then
curl -fsSL --max-time 1800 -o "$tmp/$ASSET" "$URL" ||
if curl -fsSL --max-time 1800 -o "$tmp/$ASSET" "$URL"; then
download_ok=1
elif curl -fsSL --max-time 1800 -o "$tmp/$ASSET" "$LEGACY_URL"; then
download_ok=1
fi
[ "$download_ok" = 1 ] ||
die "Stažení se nezdařilo. Zkontrolujte internet a zkuste to znovu."
else
say "Downloading build $(printf '%.7s' "$sha")..."
curl -fL --progress-bar --max-time 1800 -o "$tmp/$ASSET" "$URL" ||
if curl -fL --progress-bar --max-time 1800 -o "$tmp/$ASSET" "$URL"; then
download_ok=1
elif curl -fL --progress-bar --max-time 1800 -o "$tmp/$ASSET" "$LEGACY_URL"; then
say "(legacy package name)"
download_ok=1
fi
[ "$download_ok" = 1 ] ||
die "Stažení se nezdařilo. Zkontrolujte internet a zkuste to znovu."
say "Unpacking..."
fi

Binary file not shown.

View file

@ -10,7 +10,7 @@ rem Double-click the file to run it. The app updates itself from then on.
setlocal EnableDelayedExpansion
set "REPO=pepaskopec-blip/Graduately"
set "BRANCH=builds"
set "ASSET=maturita-windows-x64.zip"
set "ASSET=graduately-windows-x64.zip"
set "DEST=%LOCALAPPDATA%\Programs\Graduately"
echo Installing Graduately
@ -19,7 +19,7 @@ echo ---------------------
where curl >nul 2>&1 || goto :no_tools
where tar >nul 2>&1 || goto :no_tools
set "TMP_DIR=%TEMP%\maturita-installer"
set "TMP_DIR=%TEMP%\graduately-installer"
rmdir /s /q "%TMP_DIR%" 2>nul
mkdir "%TMP_DIR%" || goto :fail_tmp
@ -28,9 +28,11 @@ set "SHA="
for /f "usebackq delims=" %%S in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "$r = & curl.exe -fsSL --max-time 20 'https://github.com/%REPO%/commits/%BRANCH%.atom'; if ($r -match 'Commit/([0-9a-f]{40})') { $Matches[1] }"`) do set "SHA=%%S"
if not defined SHA goto :fail_download
set "URL=https://raw.githubusercontent.com/%REPO%/%SHA%/%ASSET%"
set "LEGACY_URL=https://raw.githubusercontent.com/%REPO%/%SHA%/maturita-windows-x64.zip"
echo Downloading build %SHA:~0,7%...
curl -fL --progress-bar --max-time 1800 -o "%TMP_DIR%\%ASSET%" "%URL%" || goto :fail_download
curl -fL --progress-bar --max-time 1800 -o "%TMP_DIR%\%ASSET%" "%URL%"
if errorlevel 1 curl -fL --progress-bar --max-time 1800 -o "%TMP_DIR%\%ASSET%" "%LEGACY_URL%" || goto :fail_download
echo Installing to %DEST%
if not exist "%DEST%" mkdir "%DEST%" || goto :fail_dest
@ -40,13 +42,13 @@ tar -xf "%TMP_DIR%\%ASSET%" -C "%DEST%" || goto :fail_extract
set "LNK=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Graduately.lnk"
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$s=(New-Object -ComObject WScript.Shell).CreateShortcut('%LNK%');" ^
"$s.TargetPath='%DEST%\maturita.exe';$s.WorkingDirectory='%DEST%';$s.Save()" >nul 2>&1
"$s.TargetPath='%DEST%\graduately.exe';$s.WorkingDirectory='%DEST%';$s.Save()" >nul 2>&1
rmdir /s /q "%TMP_DIR%" 2>nul
echo.
echo Done. Starting the app...
start "" "%DEST%\maturita.exe"
start "" "%DEST%\graduately.exe"
exit /b 0
:no_tools

Binary file not shown.

View file

@ -46,14 +46,14 @@
</p>
<p>
<a class="btn" id="dl"
href="https://raw.githubusercontent.com/pepaskopec-blip/Graduately/refs/heads/builds/maturita-ios.ipa">
href="https://raw.githubusercontent.com/pepaskopec-blip/Graduately/refs/heads/builds/graduately-ios.ipa">
Stáhnout IPA
</a>
</p>
<p>
Když odkaz hlásí 404, otevři
<a href="https://github.com/pepaskopec-blip/Graduately/tree/builds">větev builds</a>
a stáhni <code>maturita-ios.ipa</code> odtud.
a stáhni <code>graduately-ios.ipa</code> odtud.
</p>
<script>
(function () {
@ -63,7 +63,7 @@
.then(function (d) {
if (d && d.sha) {
document.getElementById("dl").href =
"https://raw.githubusercontent.com/" + repo + "/" + d.sha + "/maturita-ios.ipa";
"https://raw.githubusercontent.com/" + repo + "/" + d.sha + "/graduately-ios.ipa";
}
})
.catch(function () {});

View file

@ -7,7 +7,7 @@ set -eu
cd "$(dirname "$0")"
here=$PWD
chmod +x maturita-installer-macos.command maturita-installer-linux.sh
chmod +x graduately-installer-macos.command graduately-installer-linux.sh
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT INT TERM
@ -15,25 +15,25 @@ trap 'rm -rf "$tmp"' EXIT INT TERM
app="$tmp/Nainstalovat Graduately.app"
mkdir -p "$app/Contents/MacOS"
cp macos/Info.plist "$app/Contents/Info.plist"
cp maturita-installer-macos.command "$app/Contents/MacOS/installer"
cp graduately-installer-macos.command "$app/Contents/MacOS/installer"
chmod +x "$app/Contents/MacOS/installer"
rm -f "$here/maturita-installer-macos.zip"
(cd "$tmp" && zip -r -q "$here/maturita-installer-macos.zip" \
rm -f "$here/graduately-installer-macos.zip"
(cd "$tmp" && zip -r -q "$here/graduately-installer-macos.zip" \
"Nainstalovat Graduately.app")
zip -q -FS maturita-installer-windows.zip maturita-installer-windows.cmd
zip -q -FS maturita-installer-linux.zip maturita-installer-linux.sh
zip -q -FS graduately-installer-windows.zip graduately-installer-windows.cmd
zip -q -FS graduately-installer-linux.zip graduately-installer-linux.sh
# Browsers download a zip; they render .html as a text tab on GitHub.
# The page looks up the tip of `builds` so Fastly cannot serve a cached 404
# for the branch-named APK URL.
cp maturita-android.html "$tmp/Stahnout Graduately.html"
rm -f "$here/maturita-installer-android.zip"
(cd "$tmp" && zip -q -FS "$here/maturita-installer-android.zip" \
cp graduately-android.html "$tmp/Stahnout Graduately.html"
rm -f "$here/graduately-installer-android.zip"
(cd "$tmp" && zip -q -FS "$here/graduately-installer-android.zip" \
"Stahnout Graduately.html")
cp maturita-ios.html "$tmp/Jak nainstalovat Graduately.html"
rm -f "$here/maturita-installer-ios.zip"
(cd "$tmp" && zip -q -FS "$here/maturita-installer-ios.zip" \
cp graduately-ios.html "$tmp/Jak nainstalovat Graduately.html"
rm -f "$here/graduately-installer-ios.zip"
(cd "$tmp" && zip -q -FS "$here/graduately-installer-ios.zip" \
"Jak nainstalovat Graduately.html")

View file

@ -55,7 +55,7 @@ final class Updater {
do {
let atom = try self.get("https://github.com/\(self.repo)/commits/\(self.branch).atom")
let tip = self.atomTip(atom) ?? ""
let page = "https://github.com/\(self.repo)/raw/main/installers/maturita-ios.html"
let page = "https://github.com/\(self.repo)/raw/main/installers/graduately-ios.html"
DispatchQueue.main.async {
if let url = URL(string: page) {
UIApplication.shared.open(url)

View file

@ -59,7 +59,7 @@ final class Updater {
let url = "https://raw.githubusercontent.com/\(self.repo)/\(tip)/\(zipName)"
let cache = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first
?? URL(fileURLWithPath: NSTemporaryDirectory())
let staging = cache.appendingPathComponent("maturita-update-\(ProcessInfo.processInfo.processIdentifier)")
let staging = cache.appendingPathComponent("graduately-update-\(ProcessInfo.processInfo.processIdentifier)")
try? FileManager.default.removeItem(at: staging)
try FileManager.default.createDirectory(at: staging, withIntermediateDirectories: true)
let archive = staging.appendingPathComponent(zipName)
@ -90,9 +90,9 @@ final class Updater {
private static func assetName() -> String {
#if arch(arm64)
return "maturita-macos-arm64.zip"
return "graduately-macos-arm64.zip"
#else
return "maturita-macos-x86_64.zip"
return "graduately-macos-x86_64.zip"
#endif
}
@ -111,7 +111,7 @@ final class Updater {
}
private func writeSwapScript() -> URL {
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("maturita-swift-update.sh")
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("graduately-swift-update.sh")
let body = """
#!/bin/sh
if [ -z "$MATURITA_UPDATE_DETACHED" ]; then

View file

@ -1,17 +1,17 @@
@echo off
setlocal
REM Launch a locally built maturita.exe with the GTK4 runtime on PATH, so the
REM Launch a locally built graduately.exe with the GTK4 runtime on PATH, so the
REM app can be started by double-clicking even when GTK is not installed
REM system-wide.
if not defined GTK_ROOT set "GTK_ROOT=C:\gtk"
set "PATH=%GTK_ROOT%\bin;%PATH%"
if not exist "%~dp0maturita.exe" (
echo [error] maturita.exe not found next to this script.
if not exist "%~dp0graduately.exe" (
echo [error] graduately.exe not found next to this script.
echo Build it first with build-windows.bat.
exit /b 1
)
start "" /D "%~dp0" "%~dp0maturita.exe"
start "" /D "%~dp0" "%~dp0graduately.exe"

View file

@ -33,5 +33,5 @@ fi
mkdir -p "$root/ios/Payload"
cp -R "$app" "$root/ios/Payload/Graduately.app"
(cd "$root/ios" && zip -r -q "$root/dist-ios/maturita-ios.ipa" Payload)
echo "wrote $root/dist-ios/maturita-ios.ipa"
(cd "$root/ios" && zip -r -q "$root/dist-ios/graduately-ios.ipa" Payload)
echo "wrote $root/dist-ios/graduately-ios.ipa"

View file

@ -16,13 +16,13 @@ case "$ARCH" in
;;
esac
OUT_NAME="maturita-linux-${ARCH}.AppImage"
OUT_NAME="graduately-linux-${ARCH}.AppImage"
APPDIR="$ROOT/dist/AppDir"
TOOLS="$ROOT/dist/tools"
# Real 512×512 PNG (assets/app-icon.png is 1024×1024 and linuxdeploy rejects it).
ICON_512="$ROOT/data/share/icons/hicolor/512x512/apps/maturita.png"
echo "==> Building maturita"
echo "==> Building graduately"
make -C "$ROOT" clean
make -C "$ROOT"
@ -34,7 +34,7 @@ mkdir -p "$APPDIR/usr/bin" \
"$APPDIR/icons/hicolor/512x512/apps" \
"$APPDIR/share"
cp -f "$ROOT/maturita" "$APPDIR/usr/bin/maturita"
cp -f "$ROOT/graduately" "$APPDIR/usr/bin/graduately"
cp -f "$ROOT/data/style.css" "$APPDIR/style.css"
cp -f "$ROOT/data/changelog.txt" "$APPDIR/changelog.txt"
cp -f "$ICON_512" "$APPDIR/icons/hicolor/512x512/apps/maturita.png"
@ -48,7 +48,7 @@ cp -f "$ROOT/data/share/applications/org.maturita.Maturita.desktop" \
cp -f "$ROOT/data/share/applications/org.maturita.Maturita.desktop" \
"$APPDIR/org.maturita.Maturita.desktop"
# linuxdeploy expects Icon= without path and a matching PNG at AppDir root.
sed -i.bak 's|^Exec=.*|Exec=maturita|' "$APPDIR/org.maturita.Maturita.desktop"
sed -i.bak 's|^Exec=.*|Exec=graduately|' "$APPDIR/org.maturita.Maturita.desktop"
sed -i.bak 's|^Icon=.*|Icon=maturita|' "$APPDIR/org.maturita.Maturita.desktop"
rm -f "$APPDIR/org.maturita.Maturita.desktop.bak"
@ -92,7 +92,7 @@ export PATH="$TOOLS:$PATH"
run_linuxdeploy \
--appdir "$APPDIR" \
--executable "$APPDIR/usr/bin/maturita" \
--executable "$APPDIR/usr/bin/graduately" \
--desktop-file "$APPDIR/org.maturita.Maturita.desktop" \
--icon-file "$APPDIR/maturita.png" \
--plugin gtk \

View file

@ -27,7 +27,7 @@ case "$arch" in
esac
dd="$root/macos/DerivedData"
out_zip="maturita-macos-${arch_tag}.zip"
out_zip="graduately-macos-${arch_tag}.zip"
mkdir -p "$dd" "$root/dist"
xcodebuild \

View file

@ -26,11 +26,11 @@ expect_zip() {
bad "$zip missing $want (has: $(unzip -Z1 "$zip" | tr '\n' ' '))"
fi
}
expect_zip installers/maturita-installer-macos.zip "Nainstalovat Graduately.app/Contents/MacOS/installer"
expect_zip installers/maturita-installer-linux.zip "maturita-installer-linux.sh"
expect_zip installers/maturita-installer-windows.zip "maturita-installer-windows.cmd"
expect_zip installers/maturita-installer-android.zip "Stahnout Graduately.html"
expect_zip installers/maturita-installer-ios.zip "Jak nainstalovat Graduately.html"
expect_zip installers/graduately-installer-macos.zip "Nainstalovat Graduately.app/Contents/MacOS/installer"
expect_zip installers/graduately-installer-linux.zip "graduately-installer-linux.sh"
expect_zip installers/graduately-installer-windows.zip "graduately-installer-windows.cmd"
expect_zip installers/graduately-installer-android.zip "Stahnout Graduately.html"
expect_zip installers/graduately-installer-ios.zip "Jak nainstalovat Graduately.html"
say "Extract content.json"
tmp=$(mktemp)
@ -55,14 +55,14 @@ ok "content packs"
rm -f "$tmp"
say "GTK binary"
if [[ -x ./maturita ]]; then
./maturita --help >/dev/null
ok "maturita --help"
if [[ -x ./graduately ]]; then
./graduately --help >/dev/null
ok "graduately --help"
else
say "Building GTK binary"
make -j"$(sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 2)"
./maturita --help >/dev/null
ok "maturita --help after make"
./graduately --help >/dev/null
ok "graduately --help after make"
fi
say "Published builds tip"
@ -73,20 +73,29 @@ sha=$(curl -fsSL --max-time 20 \
if [[ ${#sha} -eq 40 ]]; then
ok "builds tip ${sha:0:7}"
for asset in \
maturita-macos-arm64.zip \
maturita-windows-x64.zip \
maturita-linux-x86_64.AppImage \
maturita-android.apk \
maturita-ios.ipa \
graduately-macos-arm64.zip \
graduately-windows-x64.zip \
graduately-linux-x86_64.AppImage \
graduately-android.apk \
graduately-ios.ipa \
VERSION
do
code=$(curl -sI -o /dev/null -w '%{http_code}' --max-time 30 \
"https://raw.githubusercontent.com/$REPO/$sha/$asset")
if [[ "$code" == "200" ]]; then
ok "$asset ($code)"
else
bad "$asset HTTP $code"
continue
fi
legacy="${asset/graduately/maturita}"
if [[ "$legacy" != "$asset" ]]; then
code2=$(curl -sI -o /dev/null -w '%{http_code}' --max-time 30 \
"https://raw.githubusercontent.com/$REPO/$sha/$legacy")
if [[ "$code2" == "200" ]]; then
ok "$asset not yet; legacy $legacy still published ($code2)"
continue
fi
fi
bad "$asset HTTP $code"
done
else
bad "could not resolve builds tip SHA"

View file

@ -3,7 +3,7 @@
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
TMP="$(mktemp -d "${TMPDIR:-/tmp}/maturita-bundle-commit.XXXXXX")"
TMP="$(mktemp -d "${TMPDIR:-/tmp}/graduately-bundle-commit.XXXXXX")"
trap 'rm -rf "$TMP"' EXIT
fail() {

View file

@ -43,7 +43,7 @@
#define UPDATE_ATOM_URL "https://github.com/" UPDATE_REPO \
"/commits/" UPDATE_BRANCH ".atom"
#define UPDATE_STAGING_DIR ".maturita-update"
#define UPDATE_STAGING_DIR ".graduately-update"
#ifdef _WIN32
#define NULL_DEVICE "NUL"
@ -215,15 +215,15 @@ static char *short_commit(const char *sha) {
* none. Only arm64 macOS and x86_64 Linux / Windows are built. */
static const char *asset_name(void) {
#if defined(_WIN32)
return "maturita-windows-x64.zip";
return "graduately-windows-x64.zip";
#elif defined(__APPLE__)
#if defined(__aarch64__) || defined(__arm64__)
return "maturita-macos-arm64.zip";
return "graduately-macos-arm64.zip";
#else
return NULL;
#endif
#elif defined(__x86_64__)
return "maturita-linux-x86_64.AppImage";
return "graduately-linux-x86_64.AppImage";
#else
return NULL;
#endif
@ -250,7 +250,7 @@ static InstallKind install_target(char **target_out, char **parent_out) {
#endif
#ifdef __APPLE__
/* .../Graduately.app/Contents/MacOS/maturita -> .../Graduately.app */
/* .../Graduately.app/Contents/MacOS/Graduately -> .../Graduately.app */
if (!target && exe) {
char *macos_dir = g_path_get_dirname(exe);
char *contents = g_path_get_dirname(macos_dir);
@ -329,7 +329,7 @@ void update_clear_staging(void) {
char *target = NULL;
char *parent = NULL;
char *cache = g_build_filename(g_get_user_cache_dir(),
"maturita-update", NULL);
"graduately-update", NULL);
remove_tree(cache);
g_free(cache);
@ -571,7 +571,7 @@ static const char *swap_script_body(InstallKind kind) {
" goto wait\r\n"
")\r\n"
"xcopy \"%SOURCE%\\*\" \"%TARGET%\\\" /E /I /Y /Q >nul\r\n"
"start \"\" \"%TARGET%\\maturita.exe\"\r\n"
"start \"\" \"%TARGET%\\graduately.exe\"\r\n"
"rmdir /s /q \"%STAGING%\"\r\n"
"del \"%~f0\"\r\n";
case INSTALL_UNSUPPORTED:
@ -582,8 +582,8 @@ static const char *swap_script_body(InstallKind kind) {
static gboolean write_swap_script(InstallKind kind) {
const char *body = swap_script_body(kind);
const char *name = kind == INSTALL_WINDOWS_DIR ? "maturita-update.cmd"
: "maturita-update.sh";
const char *name = kind == INSTALL_WINDOWS_DIR ? "graduately-update.cmd"
: "graduately-update.sh";
if (!body)
return FALSE;
@ -765,7 +765,7 @@ static void update_start_download(void) {
* from a GUI app even when the installer could put a .app there. */
g_free(up.staging);
up.staging = g_build_filename(g_get_user_cache_dir(),
"maturita-update", NULL);
"graduately-update", NULL);
remove_tree(up.staging);
if (g_mkdir_with_parents(up.staging, 0755) != 0 && parent) {
g_free(up.staging);