76 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2 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",
 | 
						|
    "amd/src",
 | 
						|
    "amd/src/*",
 | 
						|
    ".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);
 |