Skip to content

Commit eb45e41

Browse files
committed
Print json_decode() errors in start-servers.php
1 parent d08b54e commit eb45e41

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

scripts/start-servers.php

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,24 @@ function mo_http_request($uri, $context) {
6666
return $result;
6767
}
6868

69+
function json_decode_or_fail(/* json_decode() args */)
70+
{
71+
$decoded = call_user_func_array('json_decode', func_get_args());
72+
73+
if ($decoded === NULL && json_last_error() !== JSON_ERROR_NONE) {
74+
printf("\njson_decode() failed: %s\n", json_last_error_msg());
75+
var_dump(func_get_arg(0));
76+
exit(1);
77+
}
78+
79+
return $decoded;
80+
}
81+
6982
printf("Cleaning out previous processes, if any ");
7083
lap();
7184
/* Remove all pre-existing ReplicaSets */
7285
$replicasets = mo_http_request(getMOUri() . "/replica_sets", make_ctx(getMOPresetBase(), "GET"));
73-
$replicasets = json_decode($replicasets, true);
86+
$replicasets = json_decode_or_fail($replicasets, true);
7487
foreach($replicasets["replica_sets"] as $replicaset) {
7588
$uri = getMOUri() . "/replica_sets/" . $replicaset["id"];
7689
mo_http_request($uri, make_ctx(getMOPresetBase(), "DELETE"));
@@ -79,7 +92,7 @@ function mo_http_request($uri, $context) {
7992
echo " ";
8093
/* Remove all pre-existing servers */
8194
$servers = mo_http_request(getMOUri() . "/servers", make_ctx(getMOPresetBase(), "GET"));
82-
$servers = json_decode($servers, true);
95+
$servers = json_decode_or_fail($servers, true);
8396
foreach($servers["servers"] as $server) {
8497
$uri = getMOUri() . "/servers/" . $server["id"];
8598
mo_http_request($uri, make_ctx(getMOPresetBase(), "DELETE"));
@@ -89,11 +102,12 @@ function mo_http_request($uri, $context) {
89102

90103
foreach($PRESETS["standalone"] as $preset) {
91104
lap();
92-
$json = json_decode(file_get_contents($preset), true);
105+
$json = json_decode_or_fail(file_get_contents($preset), true);
93106
printf("Starting %-20s ... ", $json["id"]);
94107

95108
$result = mo_http_request(getMOUri() . "/servers", make_ctx(getMOPresetBase() . $preset));
96-
$decode = json_decode($result, true);
109+
$decode = json_decode_or_fail($result, true);
110+
97111
if (!isset($decode["id"])) {
98112
failed($decode);
99113
}
@@ -105,11 +119,12 @@ function mo_http_request($uri, $context) {
105119

106120
foreach($PRESETS["replicasets"] as $preset) {
107121
lap();
108-
$json = json_decode(file_get_contents($preset), true);
122+
$json = json_decode_or_fail(file_get_contents($preset), true);
109123
printf("Starting %-20s ... ", $json["id"]);
110124

111125
$result = mo_http_request(getMOUri() . "/replica_sets", make_ctx(getMOPresetBase() . $preset));
112-
$decode = json_decode($result, true);
126+
$decode = json_decode_or_fail($result, true);
127+
113128
if (!isset($decode["id"])) {
114129
failed($decode);
115130
}

0 commit comments

Comments
 (0)