<?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);
