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, |
219cae03 |
37 | 'fixeddataset' => false, |
bc4054f9 |
38 | 'bypasscheck' => false, |
39 | 'quiet' => false |
40 | ), |
41 | array( |
42 | 'h' => 'help' |
43 | ) |
44 | ); |
45 | |
46 | // Display help. |
47 | if (!empty($options['help']) || empty($options['shortname']) || empty($options['size'])) { |
48 | echo " |
49 | Utility to create standard test course. (Also available in GUI interface.) |
50 | |
51 | Not for use on live sites; only normally works if debugging is set to DEVELOPER |
52 | level. |
53 | |
54 | Options: |
55 | --shortname Shortname of course to create (required) |
56 | --size Size of course to create XS, S, M, L, XL, or XXL (required) |
219cae03 |
57 | --fixeddataset Use a fixed data set instead of randomly generated data |
bc4054f9 |
58 | --bypasscheck Bypasses the developer-mode check (be careful!) |
59 | --quiet Do not show any output |
60 | |
61 | -h, --help Print out this help |
62 | |
63 | Example from Moodle root directory: |
64 | \$ php admin/tool/generator/cli/maketestcourse.php --shortname=SIZE_S --size=S |
65 | "; |
66 | // Exit with error unless we're showing this because they asked for it. |
67 | exit(empty($options['help']) ? 1 : 0); |
68 | } |
69 | |
70 | // Check debugging is set to developer level. |
71 | if (empty($options['bypasscheck']) && !debugging('', DEBUG_DEVELOPER)) { |
72 | cli_error(get_string('error_notdebugging', 'tool_generator')); |
73 | } |
74 | |
75 | // Get options. |
76 | $shortname = $options['shortname']; |
77 | $sizename = $options['size']; |
219cae03 |
78 | $fixeddataset = $options['fixeddataset']; |
bc4054f9 |
79 | |
80 | // Check size. |
81 | try { |
8cac8d3e |
82 | $size = tool_generator_course_backend::size_for_name($sizename); |
bc4054f9 |
83 | } catch (coding_exception $e) { |
84 | cli_error("Invalid size ($sizename). Use --help for help."); |
85 | } |
86 | |
87 | // Check shortname. |
8cac8d3e |
88 | if ($error = tool_generator_course_backend::check_shortname_available($shortname)) { |
bc4054f9 |
89 | cli_error($error); |
90 | } |
91 | |
92 | // Switch to admin user account. |
93 | session_set_user(get_admin()); |
94 | |
95 | // Do backend code to generate course. |
8cac8d3e |
96 | $backend = new tool_generator_course_backend($shortname, $size, $fixeddataset, empty($options['quiet'])); |
bc4054f9 |
97 | $id = $backend->make(); |