bc4054f9 |
1 | <?php |
2 | // This file is part of Moodle - http://moodle.org/ |
3 | // |
4 | // Moodle is free software: you can redistribute it and/or modify |
5 | // it under the terms of the GNU General Public License as published by |
6 | // the Free Software Foundation, either version 3 of the License, or |
7 | // (at your option) any later version. |
8 | // |
9 | // Moodle is distributed in the hope that it will be useful, |
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | // GNU General Public License for more details. |
13 | // |
14 | // You should have received a copy of the GNU General Public License |
15 | // along with Moodle. If not, see <http://www.gnu.org/licenses/>. |
16 | |
17 | /** |
18 | * CLI interface for creating a test course. |
19 | * |
20 | * @package tool_generator |
21 | * @copyright 2013 The Open University |
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
23 | */ |
24 | |
25 | define('CLI_SCRIPT', true); |
26 | define('NO_OUTPUT_BUFFERING', true); |
27 | |
28 | require(dirname(__FILE__) . '/../../../../config.php'); |
29 | require_once($CFG->libdir. '/clilib.php'); |
30 | |
31 | // CLI options. |
32 | list($options, $unrecognized) = cli_get_params( |
33 | array( |
34 | 'help' => false, |
35 | 'shortname' => false, |
36 | 'size' => false, |
37 | 'bypasscheck' => false, |
38 | 'quiet' => false |
39 | ), |
40 | array( |
41 | 'h' => 'help' |
42 | ) |
43 | ); |
44 | |
45 | // Display help. |
46 | if (!empty($options['help']) || empty($options['shortname']) || empty($options['size'])) { |
47 | echo " |
48 | Utility to create standard test course. (Also available in GUI interface.) |
49 | |
50 | Not for use on live sites; only normally works if debugging is set to DEVELOPER |
51 | level. |
52 | |
53 | Options: |
54 | --shortname Shortname of course to create (required) |
55 | --size Size of course to create XS, S, M, L, XL, or XXL (required) |
56 | --bypasscheck Bypasses the developer-mode check (be careful!) |
57 | --quiet Do not show any output |
58 | |
59 | -h, --help Print out this help |
60 | |
61 | Example from Moodle root directory: |
62 | \$ php admin/tool/generator/cli/maketestcourse.php --shortname=SIZE_S --size=S |
63 | "; |
64 | // Exit with error unless we're showing this because they asked for it. |
65 | exit(empty($options['help']) ? 1 : 0); |
66 | } |
67 | |
68 | // Check debugging is set to developer level. |
69 | if (empty($options['bypasscheck']) && !debugging('', DEBUG_DEVELOPER)) { |
70 | cli_error(get_string('error_notdebugging', 'tool_generator')); |
71 | } |
72 | |
73 | // Get options. |
74 | $shortname = $options['shortname']; |
75 | $sizename = $options['size']; |
76 | |
77 | // Check size. |
78 | try { |
79 | $size = tool_generator_backend::size_for_name($sizename); |
80 | } catch (coding_exception $e) { |
81 | cli_error("Invalid size ($sizename). Use --help for help."); |
82 | } |
83 | |
84 | // Check shortname. |
85 | if ($error = tool_generator_backend::check_shortname_available($shortname)) { |
86 | cli_error($error); |
87 | } |
88 | |
89 | // Switch to admin user account. |
90 | session_set_user(get_admin()); |
91 | |
92 | // Do backend code to generate course. |
93 | $backend = new tool_generator_backend($shortname, $size, empty($options['quiet'])); |
94 | $id = $backend->make(); |