annotate bin/install-jsdeps.sh @ 10:8e3cc6fc791d

dependencies for plugins?
author Charlie Root
date Mon, 11 May 2020 16:56:46 -0400
parents 0c9c57d9d4dd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
1 #!/usr/bin/env php
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
2 <?php
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
3 /*
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
4 +-----------------------------------------------------------------------+
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
5 | bin/install-jsdeps.sh |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
6 | |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
7 | This file is part of the Roundcube Webmail client |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
8 | Copyright (C) 2016, The Roundcube Dev Team |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
9 | |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
10 | Licensed under the GNU General Public License version 3 or |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
11 | any later version with exceptions for skins & plugins. |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
12 | See the README file for a full license statement. |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
13 | |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
14 | PURPOSE: |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
15 | Utility script to fetch and install all 3rd party javascript |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
16 | libraries unsed in Roundcube from source. |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
17 +-----------------------------------------------------------------------+
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
18 | Author: Thomas Bruederli <thomas@roundcube.net> |
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
19 +-----------------------------------------------------------------------+
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
20 */
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
21
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
22 define('INSTALL_PATH', realpath(__DIR__ . '/..') . '/' );
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
23
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
24 require_once INSTALL_PATH . 'program/include/clisetup.php';
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
25
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
26 if (!function_exists('exec')) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
27 die("PHP exec() function is required. Check disable_functions in php.ini\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
28 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
29
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
30 $SOURCES = json_decode(file_get_contents(INSTALL_PATH . 'jsdeps.json'), true);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
31
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
32 if (empty($SOURCES['dependencies'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
33 die("ERROR: Failed to read sources from " . INSTALL_PATH . "jsdeps.json\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
34 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
35
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
36 $CURL = trim(`which curl`);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
37 $WGET = trim(`which wget`);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
38 $UNZIP = trim(`which unzip`);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
39 $FILEINFO = trim(`which file`);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
40
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
41 if (empty($UNZIP)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
42 die("ERROR: Required program 'unzip' not found\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
43 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
44 if (empty($FILEINFO)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
45 die("ERROR: Required program 'file' not found\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
46 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
47 if (empty($CURL) && empty($WGET)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
48 die("ERROR: Required program 'wget' or 'curl' not found\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
49 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
50
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
51 $CACHEDIR = sys_get_temp_dir();
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
52
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
53 if (is_writeable(INSTALL_PATH . 'temp/js_cache') || @mkdir(INSTALL_PATH . 'temp/js_cache', 0774, true)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
54 $CACHEDIR = INSTALL_PATH . 'temp/js_cache';
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
55 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
56
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
57
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
58 //////////////// License definitions
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
59
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
60 $LICENSES = array();
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
61 $LICENSES['MIT'] = <<<EOM
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
62 * Licensed under the MIT licenses
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
63 *
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
64 * Permission is hereby granted, free of charge, to any person obtaining
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
65 * a copy of this software and associated documentation files (the
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
66 * "Software"), to deal in the Software without restriction, including
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
67 * without limitation the rights to use, copy, modify, merge, publish,
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
68 * distribute, sublicense, and/or sell copies of the Software, and to
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
69 * permit persons to whom the Software is furnished to do so, subject to
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
70 * the following conditions:
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
71 *
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
72 * The above copyright notice and this permission notice shall be
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
73 * included in all copies or substantial portions of the Software.
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
74 *
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
75 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
76 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
77 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
78 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
79 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
80 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
81 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
82
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
83 EOM;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
84
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
85 $LICENSES['GPLv3'] = <<<EOG
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
86 * The JavaScript code in this page is free software: you can
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
87 * redistribute it and/or modify it under the terms of the GNU
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
88 * General Public License (GNU GPL) as published by the Free Software
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
89 * Foundation, either version 3 of the License, or (at your option)
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
90 * any later version. The code is distributed WITHOUT ANY WARRANTY;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
91 * without even the implied warranty of MERCHANTABILITY or FITNESS
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
92 * FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
93 *
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
94 * As additional permission under GNU GPL version 3 section 7, you
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
95 * may distribute non-source (e.g., minimized or compacted) forms of
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
96 * that code without the copy of the GNU GPL normally required by
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
97 * section 4, provided you include this license notice and a URL
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
98 * through which recipients can access the Corresponding Source.
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
99
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
100 EOG;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
101
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
102 $LICENSES['LGPL'] = <<<EOL
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
103 * The JavaScript code in this page is free software: you can
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
104 * redistribute it and/or modify it under the terms of the GNU
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
105 * Lesser General Public License as published by the Free Software
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
106 * Foundation, either version 3 of the License, or (at your option)
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
107 * any later version.
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
108
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
109 EOL;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
110
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
111
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
112 //////////////// Functions
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
113
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
114 /**
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
115 * Fetch package file from source
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
116 */
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
117 function fetch_from_source($package, $useCache = true, &$filetype = null)
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
118 {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
119 global $CURL, $WGET, $FILEINFO, $CACHEDIR;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
120
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
121 $filetype = pathinfo($package['url'], PATHINFO_EXTENSION) ?: 'tmp';
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
122 $cache_file = $CACHEDIR . '/' . $package['lib'] . '-' . $package['version'] . '.' . $filetype;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
123
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
124 if (!is_readable($cache_file) || !$useCache) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
125 echo "Fetching $package[url]\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
126
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
127 if ($CURL)
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
128 exec(sprintf('%s -s %s -o %s', $CURL, escapeshellarg($package['url']), $cache_file), $out, $retval);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
129 else
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
130 exec(sprintf('%s -q %s -O %s', $WGET, escapeshellarg($package['url']), $cache_file), $out, $retval);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
131
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
132 if ($retval !== 0) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
133 die("ERROR: Failed to download source file from " . $package['url'] . "\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
134 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
135 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
136
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
137 if (!empty($package['sha1']) && ($sum = sha1_file($cache_file)) !== $package['sha1']) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
138 die("ERROR: Incorrect sha1 sum of $cache_file. Expected: $package[sha1], got: $sum\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
139 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
140
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
141 // detect downloaded/cached file type
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
142 exec(sprintf('%s -b %s', $FILEINFO, $cache_file), $out);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
143 if (stripos($out[0], 'zip') === 0) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
144 $filetype = 'zip';
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
145 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
146
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
147 return $cache_file;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
148 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
149
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
150 /**
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
151 * Create a destination javascript file with copyright and license header
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
152 */
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
153 function compose_destfile($package, $srcfile)
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
154 {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
155 global $LICENSES;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
156
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
157 $header = sprintf("/**\n * %s - v%s\n *\n", $package['name'], $package['version']);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
158
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
159 if (!empty($package['source'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
160 $header .= " * @source " . $package['source'] . "\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
161 $header .= " *\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
162 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
163
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
164 if (!empty($package['license']) && isset($LICENSES[$package['license']])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
165 $header .= " * @licstart The following is the entire license notice for the\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
166 $header .= " * JavaScript code in this file.\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
167 $header .= " *\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
168 if (!empty($package['copyright'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
169 $header .= " * " . $package['copyright'] . "\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
170 $header .= " *\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
171 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
172
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
173 $header .= $LICENSES[$package['license']];
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
174 $header .= " *\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
175 $header .= " * @licend The above is the entire license notice\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
176 $header .= " * for the JavaScript code in this file.\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
177 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
178
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
179 $header .= " */\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
180
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
181 if (file_put_contents(INSTALL_PATH . $package['dest'], $header . file_get_contents($srcfile))) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
182 echo "Wrote file " . INSTALL_PATH . $package['dest'] . "\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
183 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
184 else {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
185 die("ERROR: Failed to write destination file " . INSTALL_PATH . $package['dest'] . "\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
186 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
187 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
188
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
189 /**
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
190 * Extract a Zip archive into the destination specified by the package config
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
191 */
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
192 function extract_zipfile($package, $srcfile)
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
193 {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
194 global $UNZIP, $CACHEDIR;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
195
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
196 $destdir = INSTALL_PATH . $package['dest'];
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
197 if (!is_dir($destdir)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
198 mkdir($destdir, 0774, true);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
199 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
200
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
201 if (!is_writeable($destdir)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
202 die("ERROR: Cannot write to destination directory $destdir\n");
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
203 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
204
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
205 // pick files from zip archive
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
206 if (!empty($package['pick'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
207 foreach ($package['pick'] as $pattern) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
208 echo "Extracting files $pattern into $destdir\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
209 exec(sprintf('%s -o %s %s -d %s', $UNZIP, escapeshellarg($srcfile), escapeshellarg($pattern), $destdir), $out, $retval);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
210 if ($retval !== 0) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
211 echo "ERROR: Failed to unpack $pattern; " . join('; ' . $out) . "\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
212 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
213 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
214 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
215 // unzip the archive and map source to dest files/directories
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
216 else if (!empty($package['map'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
217 $extract = $CACHEDIR . '/' . $package['lib'] . '-extract';
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
218 if (!is_dir($extract)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
219 mkdir($extract, 0774, true);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
220 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
221 exec(sprintf('%s -o %s -d %s', $UNZIP, escapeshellarg($srcfile), $extract), $out, $retval);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
222
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
223 // get the root folder of the extracted package
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
224 $extract_tree = glob("$extract/*", GLOB_ONLYDIR);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
225 $sourcedir = $extract_tree[0];
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
226
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
227 foreach ($package['map'] as $src => $dest) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
228 echo "Installing files $sourcedir/$src into $destdir/$dest\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
229
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
230 // make sure the destination's parent directory exists
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
231 if (strpos($dest, '/') !== false) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
232 $parentdir = dirname($destdir . '/' . $dest);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
233 if (!is_dir($parentdir)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
234 mkdir($parentdir, 0774, true);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
235 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
236 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
237
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
238 // avoid copying source directory as a child into destination
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
239 if (is_dir($sourcedir . '/' . $src) && is_dir($destdir . '/' . $dest)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
240 exec(sprintf('rm -rf %s/%s', $destdir, $dest));
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
241 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
242
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
243 exec(sprintf('mv -f %s/%s %s/%s', $sourcedir, $src, $destdir, $dest), $out, $retval);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
244 if ($retval !== 0) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
245 echo "ERROR: Failed to move $src into $destdir/$dest; " . join('; ' . $out) . "\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
246 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
247 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
248
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
249 // remove temp extraction dir
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
250 exec('rm -rf ' . $extract);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
251 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
252 // extract the archive into the destination directory
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
253 else {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
254 echo "Extracting zip archive into $destdir\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
255 exec(sprintf('%s -o %s -d %s', $UNZIP, escapeshellarg($srcfile), $destdir), $out, $retval);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
256 if ($retval !== 0) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
257 echo "ERROR: Failed to unzip $srcfile; " . join('; ' . $out) . "\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
258 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
259 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
260
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
261 // remove some files from the destination
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
262 if (!empty($package['omit'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
263 foreach ((array)$package['omit'] as $glob) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
264 exec(sprintf('rm -rf %s/%s', $destdir, escapeshellarg($glob)));
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
265 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
266 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
267
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
268 // prepend license header to extracted files
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
269 if (!empty($package['addlicense'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
270 foreach ((array)$package['addlicense'] as $filename) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
271 $pkg = $package;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
272 $pkg['dest'] = $package['dest'] . '/' . $filename;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
273 compose_destfile($pkg, $destdir . '/' . $filename);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
274 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
275 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
276 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
277
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
278 /**
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
279 * Delete the package destination file/dir
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
280 */
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
281 function delete_destfile($package)
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
282 {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
283 $destdir = INSTALL_PATH . ($package['rm'] ?: $package['dest']);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
284
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
285 if (file_exists($destdir)) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
286 if (PHP_OS === 'Windows') {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
287 exec(sprintf("rd /s /q %s", escapeshellarg($destdir)));
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
288 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
289 else {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
290 exec(sprintf("rm -rf %s", escapeshellarg($destdir)));
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
291 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
292 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
293 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
294
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
295
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
296 //////////////// Execution
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
297
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
298 $args = rcube_utils::get_opt(array('f' => 'force:bool', 'd' => 'delete:bool'))
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
299 + array('force' => false, 'delete' => false);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
300 $WHAT = $args[0];
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
301
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
302 foreach ($SOURCES['dependencies'] as $package) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
303 if (!isset($package['name'])) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
304 $package['name'] = $package['lib'];
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
305 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
306
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
307 if ($WHAT && $package['lib'] !== $WHAT) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
308 continue;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
309 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
310
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
311 if ($args['delete']) {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
312 delete_destfile($package);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
313 continue;
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
314 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
315
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
316 echo "Installing $package[name]...\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
317
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
318 $srcfile = fetch_from_source($package, !$args['force'], $filetype);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
319
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
320 if ($filetype === 'zip') {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
321 extract_zipfile($package, $srcfile);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
322 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
323 else {
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
324 compose_destfile($package, $srcfile);
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
325 }
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
326
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
327 echo "Done.\n\n";
0c9c57d9d4dd maybe stragglers from 1.3.3, after another mistaken apt-get install of 1.2.3
Charlie Root
parents:
diff changeset
328 }