init
This commit is contained in:
parent
7a4b1589af
commit
8304396fca
@ -32,6 +32,7 @@ class config extends common
|
|||||||
'blacklistReset' => self::GROUP_ADMIN,
|
'blacklistReset' => self::GROUP_ADMIN,
|
||||||
'blacklistDownload' => self::GROUP_ADMIN,
|
'blacklistDownload' => self::GROUP_ADMIN,
|
||||||
'register' => self::GROUP_ADMIN,
|
'register' => self::GROUP_ADMIN,
|
||||||
|
'autoupdate' => self::GROUP_ADMIN,
|
||||||
];
|
];
|
||||||
|
|
||||||
public static $timezones = [
|
public static $timezones = [
|
||||||
@ -938,6 +939,15 @@ class config extends common
|
|||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'redirect' => helper::baseUrl() . 'config/' . $this->getUrl(2),
|
'redirect' => helper::baseUrl() . 'config/' . $this->getUrl(2),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function autoupdate():void {
|
||||||
|
// Valeurs en sortie
|
||||||
|
$this->addOutput([
|
||||||
|
'title' => helper::translate('Auto Update'),
|
||||||
|
'view' => 'autoupdate',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
70
core/module/config/view/autoupdate/autoupdate.php
Normal file
70
core/module/config/view/autoupdate/autoupdate.php
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
// Chemins de travail
|
||||||
|
$repoUrl = 'https://forge.chapril.org/api/v1/repos/ZwiiCMS-Team/ZwiiCMS'; // URL de l'API du dépôt
|
||||||
|
|
||||||
|
// Étape 1 : Obtenir la version locale actuelle depuis common::WII_VERSION
|
||||||
|
// Charger la version locale en incluant le fichier de configuration ou en accédant à la classe appropriée
|
||||||
|
require_once __DIR__ . '/core/class/common.php'; // Ajustez le chemin selon votre installation
|
||||||
|
$currentVersion = defined('common::ZWII_VERSION') ? common::ZWII_VERSION : 'v0.0.0';
|
||||||
|
|
||||||
|
// Étape 2 : Obtenir le dernier tag depuis le dépôt
|
||||||
|
function getLatestTag() {
|
||||||
|
global $repoUrl;
|
||||||
|
$tagsUrl = $repoUrl . '/tags';
|
||||||
|
$tags = json_decode(file_get_contents($tagsUrl), true);
|
||||||
|
|
||||||
|
if (!$tags || empty($tags)) {
|
||||||
|
die('Impossible de récupérer les tags.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retourne le dernier tag (supposant que le plus récent est en tête)
|
||||||
|
return $tags[0]['name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$latestVersion = getLatestTag();
|
||||||
|
|
||||||
|
if ($currentVersion === $latestVersion) {
|
||||||
|
echo "Aucune mise à jour nécessaire. Version actuelle : $currentVersion\n";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Étape 3 : Lister les commits entre les deux versions
|
||||||
|
function getCommitsBetweenTags($fromTag, $toTag) {
|
||||||
|
global $repoUrl;
|
||||||
|
$compareUrl = $repoUrl . "/compare/$fromTag...$toTag";
|
||||||
|
$compare = json_decode(file_get_contents($compareUrl), true);
|
||||||
|
|
||||||
|
if (!$compare || empty($compare['files'])) {
|
||||||
|
die('Impossible de récupérer les commits ou fichiers modifiés.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $compare['files'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$modifiedFiles = getCommitsBetweenTags($currentVersion, $latestVersion);
|
||||||
|
|
||||||
|
// Étape 4 : Télécharger les fichiers modifiés et les mettre à jour
|
||||||
|
foreach ($modifiedFiles as $file) {
|
||||||
|
$filePath = $file['filename'];
|
||||||
|
$fileUrl = "https://forge.chapril.org/ZwiiCMS-Team/ZwiiCMS/raw/$latestVersion/$filePath";
|
||||||
|
$localPath = __DIR__ . '/' . $filePath;
|
||||||
|
|
||||||
|
// Créer le dossier si nécessaire
|
||||||
|
if (!is_dir(dirname($localPath))) {
|
||||||
|
mkdir(dirname($localPath), 0755, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Télécharger et remplacer le fichier
|
||||||
|
file_put_contents($localPath, file_get_contents($fileUrl));
|
||||||
|
echo "Mise à jour de : $filePath\n";
|
||||||
|
|
||||||
|
// Gérer la suppression de fichiers (si marqué comme supprimé dans le commit)
|
||||||
|
if ($file['status'] === 'removed' && file_exists($localPath)) {
|
||||||
|
unlink($localPath);
|
||||||
|
echo "Suppression de : $filePath\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Étape 5 : Mettre à jour la version locale (à ajuster selon votre système)
|
||||||
|
echo "Mise à jour terminée vers la version : $latestVersion\n";
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user