mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 06:28:11 +02:00
v0.6.12 : le .exe telecharge gere le cas « AJEAN deja lance » et les retours en arriere
- si AJEAN tourne, remplacer le binaire ne changeait RIEN a l'ecran (l'ancienne version restait en memoire) et rien ne le disait. On demande desormais s'il faut fermer et redemarrer pour appliquer la mise a jour, versions affichees. - si la version installee est PLUS RECENTE que le fichier lance : avertissement, aucun remplacement, choix entre demarrer et fermer. Avant, une version plus ancienne prenait la place sans un mot. - version installee illisible (binaire anterieur aux ressources de version) : traitee comme ancienne donc remplacable. La traiter comme egale condamnait ces installations a ne plus jamais se mettre a jour, en silence. - raccourcis verifies a chaque demarrage et recrees s'ils manquent, et ranges dans le dossier « Programmes » du menu Demarrer (ils etaient a la racine, donc introuvables par la recherche). La desinstallation nettoie les deux endroits. - les instances en cours sont reperees par CHEMIN complet, jamais par nom d'image : un taskkill /IM jean.exe emporterait le processus courant.
This commit is contained in:
1 parent
0d9284e95c
commit
1d58a7b1b9
7 files changed
+219
-50
No files matched your search
@@ -26,7 +26,35 @@ func TestBinaryVersionReadsResource(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// Un fichier sans ressource de version doit renvoyer "" : upgradeInstalled s'en
|
||||
// replaceInstalled doit écraser le binaire en place, y compris quand le fichier
|
||||
// cible existe déjà, et laisser l'ancien de côté sans le confondre avec la cible.
|
||||
func TestReplaceInstalled(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
target := filepath.Join(dir, "jean.exe")
|
||||
if err := os.WriteFile(target, []byte("ancienne version"), 0o755); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := replaceInstalled(target); err != nil {
|
||||
t.Fatalf("replaceInstalled : %v", err)
|
||||
}
|
||||
got, err := os.ReadFile(target)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// installSelf copie l'exécutable courant (ici le binaire de test).
|
||||
self, err := os.ReadFile(os.Args[0])
|
||||
if err != nil {
|
||||
t.Skip("binaire de test illisible")
|
||||
}
|
||||
if len(got) != len(self) {
|
||||
t.Fatalf("cible = %d octets, attendu %d (le binaire courant)", len(got), len(self))
|
||||
}
|
||||
if _, err := os.Stat(target + ".old"); err == nil {
|
||||
t.Error(".old subsiste alors que la cible n'était pas verrouillée")
|
||||
}
|
||||
}
|
||||
|
||||
// Un fichier sans ressource de version doit renvoyer "" : runAsInstaller s'en
|
||||
// sert pour s'abstenir plutôt que de remplacer un binaire au hasard.
|
||||
func TestBinaryVersionWithoutResource(t *testing.T) {
|
||||
p := filepath.Join(t.TempDir(), "vide.exe")
|
||||
|
||||
Reference in new issue
Block a user