Fossil SCM
Added "brief" option to /json/stat, mirroring the change in [d01ca14d08].
Commit
17f11a0884475283bdd43a4d3a527874703f50f5
Parent
585be130f33f54e…
1 file changed
+46
-38
+46
-38
| --- src/json.c | ||
| +++ src/json.c | ||
| @@ -1222,10 +1222,11 @@ | ||
| 1222 | 1222 | ** |
| 1223 | 1223 | */ |
| 1224 | 1224 | cson_value * json_page_stat(){ |
| 1225 | 1225 | i64 t, fsize; |
| 1226 | 1226 | int n, m; |
| 1227 | + int brief; | |
| 1227 | 1228 | const char *zDb; |
| 1228 | 1229 | enum { BufLen = 1000 }; |
| 1229 | 1230 | char zBuf[BufLen]; |
| 1230 | 1231 | cson_value * jv = NULL; |
| 1231 | 1232 | cson_object * jo = NULL; |
| @@ -1233,10 +1234,15 @@ | ||
| 1233 | 1234 | cson_object * jo2 = NULL; |
| 1234 | 1235 | if( !g.perm.Read ){ |
| 1235 | 1236 | g.json.resultCode = FSL_JSON_E_DENIED; |
| 1236 | 1237 | return NULL; |
| 1237 | 1238 | } |
| 1239 | + if( g.isHTTP ){ | |
| 1240 | + brief = json_getenv_int("brief",0); | |
| 1241 | + }else{ | |
| 1242 | + brief = (0!=find_option("brief","b",0)); | |
| 1243 | + } | |
| 1238 | 1244 | #define SETBUF(O,K) cson_object_set(O, K, cson_value_new_string(zBuf, strlen(zBuf))); |
| 1239 | 1245 | |
| 1240 | 1246 | jv = cson_value_new_object(); |
| 1241 | 1247 | jo = cson_value_get_object(jv); |
| 1242 | 1248 | |
| @@ -1247,48 +1253,50 @@ | ||
| 1247 | 1253 | with a blob for this purpose. |
| 1248 | 1254 | */ |
| 1249 | 1255 | fsize = file_size(g.zRepositoryName); |
| 1250 | 1256 | cson_object_set(jo, "repositorySize", cson_value_new_integer((cson_int_t)fsize)); |
| 1251 | 1257 | |
| 1252 | - n = db_int(0, "SELECT count(*) FROM blob"); | |
| 1253 | - m = db_int(0, "SELECT count(*) FROM delta"); | |
| 1254 | - cson_object_set(jo, "blobCount", cson_value_new_integer((cson_int_t)n)); | |
| 1255 | - cson_object_set(jo, "deltaCount", cson_value_new_integer((cson_int_t)m)); | |
| 1256 | - if( n>0 ){ | |
| 1257 | - int a, b; | |
| 1258 | - Stmt q; | |
| 1259 | - db_prepare(&q, "SELECT total(size), avg(size), max(size)" | |
| 1260 | - " FROM blob WHERE size>0"); | |
| 1261 | - db_step(&q); | |
| 1262 | - t = db_column_int64(&q, 0); | |
| 1263 | - cson_object_set(jo, "uncompressedArtifactSize", | |
| 1264 | - cson_value_new_integer((cson_int_t)t)); | |
| 1265 | - cson_object_set(jo, "averageArtifactSize", | |
| 1266 | - cson_value_new_integer((cson_int_t)db_column_int(&q, 1))); | |
| 1267 | - cson_object_set(jo, "maxArtifactSize", | |
| 1268 | - cson_value_new_integer((cson_int_t)db_column_int(&q, 2))); | |
| 1269 | - db_finalize(&q); | |
| 1270 | - if( t/fsize < 5 ){ | |
| 1271 | - b = 10; | |
| 1272 | - fsize /= 10; | |
| 1273 | - }else{ | |
| 1274 | - b = 1; | |
| 1275 | - } | |
| 1276 | - a = t/fsize; | |
| 1277 | - sqlite3_snprintf(BufLen,zBuf, "%d:%d", a, b); | |
| 1278 | - SETBUF(jo, "compressionRatio"); | |
| 1279 | - } | |
| 1280 | - n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/"); | |
| 1281 | - cson_object_set(jo, "checkinCount", cson_value_new_integer((cson_int_t)n)); | |
| 1282 | - n = db_int(0, "SELECT count(*) FROM filename /*scan*/"); | |
| 1283 | - cson_object_set(jo, "fileCount", cson_value_new_integer((cson_int_t)n)); | |
| 1284 | - n = db_int(0, "SELECT count(*) FROM tag /*scan*/" | |
| 1285 | - " WHERE +tagname GLOB 'wiki-*'"); | |
| 1286 | - cson_object_set(jo, "wikiPageCount", cson_value_new_integer((cson_int_t)n)); | |
| 1287 | - n = db_int(0, "SELECT count(*) FROM tag /*scan*/" | |
| 1288 | - " WHERE +tagname GLOB 'tkt-*'"); | |
| 1289 | - cson_object_set(jo, "ticketCount", cson_value_new_integer((cson_int_t)n)); | |
| 1258 | + if(!brief){ | |
| 1259 | + n = db_int(0, "SELECT count(*) FROM blob"); | |
| 1260 | + m = db_int(0, "SELECT count(*) FROM delta"); | |
| 1261 | + cson_object_set(jo, "blobCount", cson_value_new_integer((cson_int_t)n)); | |
| 1262 | + cson_object_set(jo, "deltaCount", cson_value_new_integer((cson_int_t)m)); | |
| 1263 | + if( n>0 ){ | |
| 1264 | + int a, b; | |
| 1265 | + Stmt q; | |
| 1266 | + db_prepare(&q, "SELECT total(size), avg(size), max(size)" | |
| 1267 | + " FROM blob WHERE size>0"); | |
| 1268 | + db_step(&q); | |
| 1269 | + t = db_column_int64(&q, 0); | |
| 1270 | + cson_object_set(jo, "uncompressedArtifactSize", | |
| 1271 | + cson_value_new_integer((cson_int_t)t)); | |
| 1272 | + cson_object_set(jo, "averageArtifactSize", | |
| 1273 | + cson_value_new_integer((cson_int_t)db_column_int(&q, 1))); | |
| 1274 | + cson_object_set(jo, "maxArtifactSize", | |
| 1275 | + cson_value_new_integer((cson_int_t)db_column_int(&q, 2))); | |
| 1276 | + db_finalize(&q); | |
| 1277 | + if( t/fsize < 5 ){ | |
| 1278 | + b = 10; | |
| 1279 | + fsize /= 10; | |
| 1280 | + }else{ | |
| 1281 | + b = 1; | |
| 1282 | + } | |
| 1283 | + a = t/fsize; | |
| 1284 | + sqlite3_snprintf(BufLen,zBuf, "%d:%d", a, b); | |
| 1285 | + SETBUF(jo, "compressionRatio"); | |
| 1286 | + } | |
| 1287 | + n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/"); | |
| 1288 | + cson_object_set(jo, "checkinCount", cson_value_new_integer((cson_int_t)n)); | |
| 1289 | + n = db_int(0, "SELECT count(*) FROM filename /*scan*/"); | |
| 1290 | + cson_object_set(jo, "fileCount", cson_value_new_integer((cson_int_t)n)); | |
| 1291 | + n = db_int(0, "SELECT count(*) FROM tag /*scan*/" | |
| 1292 | + " WHERE +tagname GLOB 'wiki-*'"); | |
| 1293 | + cson_object_set(jo, "wikiPageCount", cson_value_new_integer((cson_int_t)n)); | |
| 1294 | + n = db_int(0, "SELECT count(*) FROM tag /*scan*/" | |
| 1295 | + " WHERE +tagname GLOB 'tkt-*'"); | |
| 1296 | + cson_object_set(jo, "ticketCount", cson_value_new_integer((cson_int_t)n)); | |
| 1297 | + }/*!brief*/ | |
| 1290 | 1298 | n = db_int(0, "SELECT julianday('now') - (SELECT min(mtime) FROM event)" |
| 1291 | 1299 | " + 0.99"); |
| 1292 | 1300 | cson_object_set(jo, "ageDays", cson_value_new_integer((cson_int_t)n)); |
| 1293 | 1301 | cson_object_set(jo, "ageYears", cson_value_new_double(n/365.24)); |
| 1294 | 1302 | sqlite3_snprintf(BufLen, zBuf, db_get("project-code","")); |
| 1295 | 1303 |
| --- src/json.c | |
| +++ src/json.c | |
| @@ -1222,10 +1222,11 @@ | |
| 1222 | ** |
| 1223 | */ |
| 1224 | cson_value * json_page_stat(){ |
| 1225 | i64 t, fsize; |
| 1226 | int n, m; |
| 1227 | const char *zDb; |
| 1228 | enum { BufLen = 1000 }; |
| 1229 | char zBuf[BufLen]; |
| 1230 | cson_value * jv = NULL; |
| 1231 | cson_object * jo = NULL; |
| @@ -1233,10 +1234,15 @@ | |
| 1233 | cson_object * jo2 = NULL; |
| 1234 | if( !g.perm.Read ){ |
| 1235 | g.json.resultCode = FSL_JSON_E_DENIED; |
| 1236 | return NULL; |
| 1237 | } |
| 1238 | #define SETBUF(O,K) cson_object_set(O, K, cson_value_new_string(zBuf, strlen(zBuf))); |
| 1239 | |
| 1240 | jv = cson_value_new_object(); |
| 1241 | jo = cson_value_get_object(jv); |
| 1242 | |
| @@ -1247,48 +1253,50 @@ | |
| 1247 | with a blob for this purpose. |
| 1248 | */ |
| 1249 | fsize = file_size(g.zRepositoryName); |
| 1250 | cson_object_set(jo, "repositorySize", cson_value_new_integer((cson_int_t)fsize)); |
| 1251 | |
| 1252 | n = db_int(0, "SELECT count(*) FROM blob"); |
| 1253 | m = db_int(0, "SELECT count(*) FROM delta"); |
| 1254 | cson_object_set(jo, "blobCount", cson_value_new_integer((cson_int_t)n)); |
| 1255 | cson_object_set(jo, "deltaCount", cson_value_new_integer((cson_int_t)m)); |
| 1256 | if( n>0 ){ |
| 1257 | int a, b; |
| 1258 | Stmt q; |
| 1259 | db_prepare(&q, "SELECT total(size), avg(size), max(size)" |
| 1260 | " FROM blob WHERE size>0"); |
| 1261 | db_step(&q); |
| 1262 | t = db_column_int64(&q, 0); |
| 1263 | cson_object_set(jo, "uncompressedArtifactSize", |
| 1264 | cson_value_new_integer((cson_int_t)t)); |
| 1265 | cson_object_set(jo, "averageArtifactSize", |
| 1266 | cson_value_new_integer((cson_int_t)db_column_int(&q, 1))); |
| 1267 | cson_object_set(jo, "maxArtifactSize", |
| 1268 | cson_value_new_integer((cson_int_t)db_column_int(&q, 2))); |
| 1269 | db_finalize(&q); |
| 1270 | if( t/fsize < 5 ){ |
| 1271 | b = 10; |
| 1272 | fsize /= 10; |
| 1273 | }else{ |
| 1274 | b = 1; |
| 1275 | } |
| 1276 | a = t/fsize; |
| 1277 | sqlite3_snprintf(BufLen,zBuf, "%d:%d", a, b); |
| 1278 | SETBUF(jo, "compressionRatio"); |
| 1279 | } |
| 1280 | n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/"); |
| 1281 | cson_object_set(jo, "checkinCount", cson_value_new_integer((cson_int_t)n)); |
| 1282 | n = db_int(0, "SELECT count(*) FROM filename /*scan*/"); |
| 1283 | cson_object_set(jo, "fileCount", cson_value_new_integer((cson_int_t)n)); |
| 1284 | n = db_int(0, "SELECT count(*) FROM tag /*scan*/" |
| 1285 | " WHERE +tagname GLOB 'wiki-*'"); |
| 1286 | cson_object_set(jo, "wikiPageCount", cson_value_new_integer((cson_int_t)n)); |
| 1287 | n = db_int(0, "SELECT count(*) FROM tag /*scan*/" |
| 1288 | " WHERE +tagname GLOB 'tkt-*'"); |
| 1289 | cson_object_set(jo, "ticketCount", cson_value_new_integer((cson_int_t)n)); |
| 1290 | n = db_int(0, "SELECT julianday('now') - (SELECT min(mtime) FROM event)" |
| 1291 | " + 0.99"); |
| 1292 | cson_object_set(jo, "ageDays", cson_value_new_integer((cson_int_t)n)); |
| 1293 | cson_object_set(jo, "ageYears", cson_value_new_double(n/365.24)); |
| 1294 | sqlite3_snprintf(BufLen, zBuf, db_get("project-code","")); |
| 1295 |
| --- src/json.c | |
| +++ src/json.c | |
| @@ -1222,10 +1222,11 @@ | |
| 1222 | ** |
| 1223 | */ |
| 1224 | cson_value * json_page_stat(){ |
| 1225 | i64 t, fsize; |
| 1226 | int n, m; |
| 1227 | int brief; |
| 1228 | const char *zDb; |
| 1229 | enum { BufLen = 1000 }; |
| 1230 | char zBuf[BufLen]; |
| 1231 | cson_value * jv = NULL; |
| 1232 | cson_object * jo = NULL; |
| @@ -1233,10 +1234,15 @@ | |
| 1234 | cson_object * jo2 = NULL; |
| 1235 | if( !g.perm.Read ){ |
| 1236 | g.json.resultCode = FSL_JSON_E_DENIED; |
| 1237 | return NULL; |
| 1238 | } |
| 1239 | if( g.isHTTP ){ |
| 1240 | brief = json_getenv_int("brief",0); |
| 1241 | }else{ |
| 1242 | brief = (0!=find_option("brief","b",0)); |
| 1243 | } |
| 1244 | #define SETBUF(O,K) cson_object_set(O, K, cson_value_new_string(zBuf, strlen(zBuf))); |
| 1245 | |
| 1246 | jv = cson_value_new_object(); |
| 1247 | jo = cson_value_get_object(jv); |
| 1248 | |
| @@ -1247,48 +1253,50 @@ | |
| 1253 | with a blob for this purpose. |
| 1254 | */ |
| 1255 | fsize = file_size(g.zRepositoryName); |
| 1256 | cson_object_set(jo, "repositorySize", cson_value_new_integer((cson_int_t)fsize)); |
| 1257 | |
| 1258 | if(!brief){ |
| 1259 | n = db_int(0, "SELECT count(*) FROM blob"); |
| 1260 | m = db_int(0, "SELECT count(*) FROM delta"); |
| 1261 | cson_object_set(jo, "blobCount", cson_value_new_integer((cson_int_t)n)); |
| 1262 | cson_object_set(jo, "deltaCount", cson_value_new_integer((cson_int_t)m)); |
| 1263 | if( n>0 ){ |
| 1264 | int a, b; |
| 1265 | Stmt q; |
| 1266 | db_prepare(&q, "SELECT total(size), avg(size), max(size)" |
| 1267 | " FROM blob WHERE size>0"); |
| 1268 | db_step(&q); |
| 1269 | t = db_column_int64(&q, 0); |
| 1270 | cson_object_set(jo, "uncompressedArtifactSize", |
| 1271 | cson_value_new_integer((cson_int_t)t)); |
| 1272 | cson_object_set(jo, "averageArtifactSize", |
| 1273 | cson_value_new_integer((cson_int_t)db_column_int(&q, 1))); |
| 1274 | cson_object_set(jo, "maxArtifactSize", |
| 1275 | cson_value_new_integer((cson_int_t)db_column_int(&q, 2))); |
| 1276 | db_finalize(&q); |
| 1277 | if( t/fsize < 5 ){ |
| 1278 | b = 10; |
| 1279 | fsize /= 10; |
| 1280 | }else{ |
| 1281 | b = 1; |
| 1282 | } |
| 1283 | a = t/fsize; |
| 1284 | sqlite3_snprintf(BufLen,zBuf, "%d:%d", a, b); |
| 1285 | SETBUF(jo, "compressionRatio"); |
| 1286 | } |
| 1287 | n = db_int(0, "SELECT count(distinct mid) FROM mlink /*scan*/"); |
| 1288 | cson_object_set(jo, "checkinCount", cson_value_new_integer((cson_int_t)n)); |
| 1289 | n = db_int(0, "SELECT count(*) FROM filename /*scan*/"); |
| 1290 | cson_object_set(jo, "fileCount", cson_value_new_integer((cson_int_t)n)); |
| 1291 | n = db_int(0, "SELECT count(*) FROM tag /*scan*/" |
| 1292 | " WHERE +tagname GLOB 'wiki-*'"); |
| 1293 | cson_object_set(jo, "wikiPageCount", cson_value_new_integer((cson_int_t)n)); |
| 1294 | n = db_int(0, "SELECT count(*) FROM tag /*scan*/" |
| 1295 | " WHERE +tagname GLOB 'tkt-*'"); |
| 1296 | cson_object_set(jo, "ticketCount", cson_value_new_integer((cson_int_t)n)); |
| 1297 | }/*!brief*/ |
| 1298 | n = db_int(0, "SELECT julianday('now') - (SELECT min(mtime) FROM event)" |
| 1299 | " + 0.99"); |
| 1300 | cson_object_set(jo, "ageDays", cson_value_new_integer((cson_int_t)n)); |
| 1301 | cson_object_set(jo, "ageYears", cson_value_new_double(n/365.24)); |
| 1302 | sqlite3_snprintf(BufLen, zBuf, db_get("project-code","")); |
| 1303 |