-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate-icons.sh
More file actions
executable file
·108 lines (91 loc) · 3.52 KB
/
generate-icons.sh
File metadata and controls
executable file
·108 lines (91 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash
#
# generate-icons.sh
# Generate icons from photoprism website for MacOS Launcher App.
#
# Copyright (C) 2025 Chris Bansart (@chrisbansart)
# https://github.com/chrisbansart
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
set -euo pipefail
# Script pour générer les icônes de l'app PhotoPrism à partir du logo officiel SVG
# Nécessite: curl, qlmanage ou rsvg-convert (pour SVG->PNG), sips (macOS built-in)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ASSETS_DIR="$SCRIPT_DIR/PhotoPrismLauncher/Assets.xcassets"
APPICON_DIR="$ASSETS_DIR/AppIcon.appiconset"
STATUSBAR_DIR="$ASSETS_DIR/StatusBarIcon.imageset"
# URL du logo PhotoPrism officiel
# SVG disponible à: https://dl.photoprism.app/img/logo/logo.svg
LOGO_URL="https://dl.photoprism.app/icons/app/1024.png"
echo ">> Création des dossiers..."
mkdir -p "$APPICON_DIR"
mkdir -p "$STATUSBAR_DIR"
# Téléchargement du logo PNG
TEMP_LOGO="/tmp/photoprism_logo_1024.png"
echo ">> Téléchargement du logo PhotoPrism (PNG 1024x1024)..."
if curl -fsSL "$LOGO_URL" -o "$TEMP_LOGO" 2>/dev/null; then
echo " Logo téléchargé depuis $LOGO_URL"
else
echo "!! Impossible de télécharger le logo."
exit 1
fi
# Vérifier que le téléchargement a réussi
if [[ ! -f "$TEMP_LOGO" ]]; then
echo "!! Échec du téléchargement"
exit 1
fi
# Vérification que sips est disponible (macOS uniquement)
if ! command -v sips &>/dev/null; then
echo "!! 'sips' non disponible. Ce script nécessite macOS."
echo " Copiez manuellement les icônes dans les tailles requises."
exit 1
fi
echo ">> Génération des icônes de l'application..."
# Tailles pour AppIcon (macOS)
declare -a ICON_SIZES=(
"16:icon_16x16.png"
"32:icon_16x16@2x.png"
"32:icon_32x32.png"
"64:icon_32x32@2x.png"
"128:icon_128x128.png"
"256:icon_128x128@2x.png"
"256:icon_256x256.png"
"512:icon_256x256@2x.png"
"512:icon_512x512.png"
"1024:icon_512x512@2x.png"
)
for entry in "${ICON_SIZES[@]}"; do
size="${entry%%:*}"
filename="${entry##*:}"
echo " - $filename (${size}x${size})"
sips -z "$size" "$size" "$TEMP_LOGO" --out "$APPICON_DIR/$filename" >/dev/null 2>&1
done
echo ">> Génération de l'icône de la barre de menu..."
# L'icône de la barre de menu doit être en noir/blanc (template image)
# Taille recommandée: 18x18 @1x, 36x36 @2x
# D'abord créer une version de l'icône
sips -z 18 18 "$TEMP_LOGO" --out "$STATUSBAR_DIR/statusbar_icon.png" >/dev/null 2>&1
sips -z 36 36 "$TEMP_LOGO" --out "$STATUSBAR_DIR/statusbar_icon@2x.png" >/dev/null 2>&1
echo ">> Icônes générées avec succès!"
echo ""
echo "IMPORTANT: Les icônes de la barre de menu devraient être des 'template images'"
echo "(noir sur fond transparent) pour s'adapter au mode clair/sombre."
echo "Vous pouvez les éditer manuellement ou utiliser le logo tel quel."
echo ""
echo "Dossiers créés:"
echo " - $APPICON_DIR"
echo " - $STATUSBAR_DIR"
# Nettoyage
rm -f "$TEMP_LOGO"