Skip to content
Snippets Groups Projects
Commit c0c6ac50 authored by Jared Hancock's avatar Jared Hancock
Browse files

Add deploy cli script

This will allow folks following the git development model to checkout the
sourcecode to one folder, follow an upstream git brach, and deploy the
osticket installation from a current branch to a location somewhere.

The deploy process differs from the unpack process in that it does not
assume to be inside an 'upload/' folder from the install zipball, and it
does not deploy the 'setup/' folder.

The include folder is still supported to be installed elsewhere.
parent 9ab27012
No related branches found
No related tags found
No related merge requests found
<?php
require_once dirname(__file__) . "/class.module.php";
require_once dirname(__file__) . "/unpack.php";
class Deployment extends Unpacker {
var $prologue = "Deploys osTicket into target install path";
var $epilog =
"Deployment is used from the continuous development model. If you
are following the upstream git repo, then you can use the deploy
script to deploy changes made by you or upstream development to your
installation target";
function find_root_folder() {
# Hop up to the root folder of this repo
$start = dirname(__file__);
for (;;) {
if (is_file($start . '/main.inc.php')) break;
$start .= '/..';
}
return realpath($start);
}
function run($args, $options) {
$this->destination = $args['install-path'];
if (!is_dir($this->destination))
if (!@mkdir($this->destination, 0751, true))
die("Destination path does not exist and cannot be created");
$this->destination = realpath($this->destination).'/';
# Determine if this is an upgrade, and if so, where the include/
# folder is currently located
$upgrade = file_exists("{$this->destination}/main.inc.php");
# Get the current value of the INCLUDE_DIR before overwriting
# main.inc.php
$include = ($upgrade) ? $this->get_include_dir()
: ($options['include'] ? $options['include']
: "{$this->destination}/include");
if (substr($include, -1) !== '/')
$include .= '/';
# Locate the upload folder
$root = $this->find_root_folder();
# Unpack everything but the include/ folder
$this->unpackage("$root/*", $this->destination, -1,
array("$root/setup", "$root/include", "*.md", "*.txt"));
# Unpack the include folder
$this->unpackage("$root/include/*", $include, -1);
if (!$upgrade && $include != "{$this->destination}/include")
$this->change_include_dir($include);
}
}
Module::register('deploy', 'Deployment');
?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment