moodle_local_treestudyplan/build.php
2024-06-03 23:24:16 +02:00

75 lines
2.0 KiB
PHP

<?php
// This file is part of the Studyplan plugin for Moodle
//
// Moodle 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.
//
// Moodle 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 Moodle. If not, see <https://www.gnu.org/licenses/>.
/**
* Build script to properly create a distribution zip
* @package local_treestudyplan
* @copyright 2023 P.M. Kuipers
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require_once("../../config.php");
$plugin = new stdClass;
require_once('version.php');
$a = explode("_", $plugin->component, 2);
$plugin->type = $a[0];
$plugin->name = $a[1];
$excludepaths = [
"build", // Dir for build zip files.
"build/*",
"build.*",
"vuemode.sh",
".git",
".git/*",
".gitignore",
"*.zip",
];
// Determine some paths.
$wd = realpath(dirname(__FILE__));
$parent = dirname($wd);
$plugindirname = basename($wd);
$builddir = $wd."/"."build";
$zipname = $builddir."/"."{$plugin->name}-{$plugin->version}.zip";
// Create the exclude line.
$exclude = "-x ";
foreach ($excludepaths as $x) {
$exclude .= "'{$plugindirname}/{$x}' ";
}
if (!is_dir($builddir)) {
mkdir($builddir);
if (!is_dir($builddir)) {
print("Cannot access dir '{$builddir}' to store zip files\n");
exit(1);
}
}
if (file_exists($zipfile)) {
print("Zip file '{$zipfile}' already exists. Exiting...\n");
exit(1);
}
$cwd = getcwd();
chdir($parent);
$cmd = "zip -r '{$zipname}' '{$plugindirname}' {$exclude}";
system($cmd);
chdir($cwd);