Mercurial > hg > rc2
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 |
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 } |