Fossil SCM
Add test-version web page. Refactor command line 'version' command code into a function to help facilitate that.
Commit
f7cd247b95ba57bb7aa3f1610dbd6648910dfa03
Parent
8f6b78e7b20a9f6…
1 file changed
+100
-67
+100
-67
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -1009,10 +1009,83 @@ | ||
| 1009 | 1009 | const char *get_version(){ |
| 1010 | 1010 | static const char version[] = RELEASE_VERSION " " MANIFEST_VERSION " " |
| 1011 | 1011 | MANIFEST_DATE " UTC"; |
| 1012 | 1012 | return version; |
| 1013 | 1013 | } |
| 1014 | + | |
| 1015 | +/* | |
| 1016 | +** This function populates a blob with version information. It is used by | |
| 1017 | +** the "version" command and "test-version" web page. It assumes the blob | |
| 1018 | +** passed to it is uninitialized; otherwise, it will leak memory. | |
| 1019 | +*/ | |
| 1020 | +static void get_version_blob( | |
| 1021 | + Blob *pOut, /* Write the manifest here */ | |
| 1022 | + int bVerbose /* Non-zero for full information. */ | |
| 1023 | +){ | |
| 1024 | +#if defined(FOSSIL_ENABLE_TCL) | |
| 1025 | + int rc; | |
| 1026 | + const char *zRc; | |
| 1027 | +#endif | |
| 1028 | + blob_zero(pOut); | |
| 1029 | + blob_appendf(pOut, "This is fossil version %s\n", get_version()); | |
| 1030 | + if( !bVerbose ) return; | |
| 1031 | + blob_appendf(pOut, "Compiled on %s %s using %s (%d-bit)\n", | |
| 1032 | + __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); | |
| 1033 | + blob_appendf(pOut, "SQLite %s %.30s\n", sqlite3_libversion(), | |
| 1034 | + sqlite3_sourceid()); | |
| 1035 | + blob_appendf(pOut, "Schema version %s\n", AUX_SCHEMA_MAX); | |
| 1036 | +#if defined(FOSSIL_ENABLE_MINIZ) | |
| 1037 | + blob_appendf(pOut, "miniz %s, loaded %s\n", MZ_VERSION, mz_version()); | |
| 1038 | +#else | |
| 1039 | + blob_appendf(pOut, "zlib %s, loaded %s\n", ZLIB_VERSION, zlibVersion()); | |
| 1040 | +#endif | |
| 1041 | +#if defined(FOSSIL_ENABLE_SSL) | |
| 1042 | + blob_appendf(pOut, "SSL (%s)\n", SSLeay_version(SSLEAY_VERSION)); | |
| 1043 | +#endif | |
| 1044 | +#if defined(FOSSIL_ENABLE_LEGACY_MV_RM) | |
| 1045 | + blob_append(pOut, "LEGACY_MV_RM\n", -1); | |
| 1046 | +#endif | |
| 1047 | +#if defined(FOSSIL_ENABLE_EXEC_REL_PATHS) | |
| 1048 | + blob_append(pOut, "EXEC_REL_PATHS\n", -1); | |
| 1049 | +#endif | |
| 1050 | +#if defined(FOSSIL_ENABLE_TH1_DOCS) | |
| 1051 | + blob_append(pOut, "TH1_DOCS\n", -1); | |
| 1052 | +#endif | |
| 1053 | +#if defined(FOSSIL_ENABLE_TH1_HOOKS) | |
| 1054 | + blob_append(pOut, "TH1_HOOKS\n", -1); | |
| 1055 | +#endif | |
| 1056 | +#if defined(FOSSIL_ENABLE_TCL) | |
| 1057 | + Th_FossilInit(TH_INIT_DEFAULT | TH_INIT_FORCE_TCL); | |
| 1058 | + rc = Th_Eval(g.interp, 0, "tclInvoke info patchlevel", -1); | |
| 1059 | + zRc = Th_ReturnCodeName(rc, 0); | |
| 1060 | + blob_appendf(pOut, "TCL (Tcl %s, loaded %s: %s)\n", | |
| 1061 | + TCL_PATCH_LEVEL, zRc, Th_GetResult(g.interp, 0) | |
| 1062 | + ); | |
| 1063 | +#endif | |
| 1064 | +#if defined(USE_TCL_STUBS) | |
| 1065 | + blob_append(pOut, "USE_TCL_STUBS\n", -1); | |
| 1066 | +#endif | |
| 1067 | +#if defined(FOSSIL_ENABLE_TCL_STUBS) | |
| 1068 | + blob_append(pOut, "TCL_STUBS\n", -1); | |
| 1069 | +#endif | |
| 1070 | +#if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) | |
| 1071 | + blob_append(pOut, "TCL_PRIVATE_STUBS\n", -1); | |
| 1072 | +#endif | |
| 1073 | +#if defined(FOSSIL_ENABLE_JSON) | |
| 1074 | + blob_appendf(pOut, "JSON (API %s)\n", FOSSIL_JSON_API_VERSION); | |
| 1075 | +#endif | |
| 1076 | +#if defined(BROKEN_MINGW_CMDLINE) | |
| 1077 | + blob_append(pOut, "MBCS_COMMAND_LINE\n", -1); | |
| 1078 | +#else | |
| 1079 | + blob_append(pOut, "UNICODE_COMMAND_LINE\n", -1); | |
| 1080 | +#endif | |
| 1081 | +#if defined(FOSSIL_DYNAMIC_BUILD) | |
| 1082 | + blob_append(pOut, "DYNAMIC_BUILD\n", -1); | |
| 1083 | +#else | |
| 1084 | + blob_append(pOut, "STATIC_BUILD\n", -1); | |
| 1085 | +#endif | |
| 1086 | +} | |
| 1014 | 1087 | |
| 1015 | 1088 | /* |
| 1016 | 1089 | ** This function returns the user-agent string for Fossil, for |
| 1017 | 1090 | ** use in HTTP(S) requests. |
| 1018 | 1091 | */ |
| @@ -1019,10 +1092,11 @@ | ||
| 1019 | 1092 | const char *get_user_agent(){ |
| 1020 | 1093 | static const char version[] = "Fossil/" RELEASE_VERSION " (" MANIFEST_DATE |
| 1021 | 1094 | " " MANIFEST_VERSION ")"; |
| 1022 | 1095 | return version; |
| 1023 | 1096 | } |
| 1097 | + | |
| 1024 | 1098 | |
| 1025 | 1099 | /* |
| 1026 | 1100 | ** COMMAND: version |
| 1027 | 1101 | ** |
| 1028 | 1102 | ** Usage: %fossil version ?-verbose|-v? |
| @@ -1031,80 +1105,39 @@ | ||
| 1031 | 1105 | ** If the verbose option is specified, additional details will |
| 1032 | 1106 | ** be output about what optional features this binary was compiled |
| 1033 | 1107 | ** with |
| 1034 | 1108 | */ |
| 1035 | 1109 | void version_cmd(void){ |
| 1036 | - int verboseFlag = 0; | |
| 1037 | - | |
| 1038 | - fossil_print("This is fossil version %s\n", get_version()); | |
| 1039 | - verboseFlag = find_option("verbose","v",0)!=0; | |
| 1110 | + Blob versionInfo; | |
| 1111 | + int verboseFlag = find_option("verbose","v",0)!=0; | |
| 1040 | 1112 | |
| 1041 | 1113 | /* We should be done with options.. */ |
| 1042 | 1114 | verify_all_options(); |
| 1043 | - | |
| 1044 | - if(!verboseFlag){ | |
| 1045 | - return; | |
| 1046 | - }else{ | |
| 1047 | -#if defined(FOSSIL_ENABLE_TCL) | |
| 1048 | - int rc; | |
| 1049 | - const char *zRc; | |
| 1050 | -#endif | |
| 1051 | - fossil_print("Compiled on %s %s using %s (%d-bit)\n", | |
| 1052 | - __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); | |
| 1053 | - fossil_print("SQLite %s %.30s\n", sqlite3_libversion(), sqlite3_sourceid()); | |
| 1054 | - fossil_print("Schema version %s\n", AUX_SCHEMA_MAX); | |
| 1055 | -#if defined(FOSSIL_ENABLE_MINIZ) | |
| 1056 | - fossil_print("miniz %s, loaded %s\n", MZ_VERSION, mz_version()); | |
| 1057 | -#else | |
| 1058 | - fossil_print("zlib %s, loaded %s\n", ZLIB_VERSION, zlibVersion()); | |
| 1059 | -#endif | |
| 1060 | -#if defined(FOSSIL_ENABLE_SSL) | |
| 1061 | - fossil_print("SSL (%s)\n", SSLeay_version(SSLEAY_VERSION)); | |
| 1062 | -#endif | |
| 1063 | -#if defined(FOSSIL_ENABLE_LEGACY_MV_RM) | |
| 1064 | - fossil_print("LEGACY_MV_RM\n"); | |
| 1065 | -#endif | |
| 1066 | -#if defined(FOSSIL_ENABLE_EXEC_REL_PATHS) | |
| 1067 | - fossil_print("EXEC_REL_PATHS\n"); | |
| 1068 | -#endif | |
| 1069 | -#if defined(FOSSIL_ENABLE_TH1_DOCS) | |
| 1070 | - fossil_print("TH1_DOCS\n"); | |
| 1071 | -#endif | |
| 1072 | -#if defined(FOSSIL_ENABLE_TH1_HOOKS) | |
| 1073 | - fossil_print("TH1_HOOKS\n"); | |
| 1074 | -#endif | |
| 1075 | -#if defined(FOSSIL_ENABLE_TCL) | |
| 1076 | - Th_FossilInit(TH_INIT_DEFAULT | TH_INIT_FORCE_TCL); | |
| 1077 | - rc = Th_Eval(g.interp, 0, "tclInvoke info patchlevel", -1); | |
| 1078 | - zRc = Th_ReturnCodeName(rc, 0); | |
| 1079 | - fossil_print("TCL (Tcl %s, loaded %s: %s)\n", | |
| 1080 | - TCL_PATCH_LEVEL, zRc, Th_GetResult(g.interp, 0) | |
| 1081 | - ); | |
| 1082 | -#endif | |
| 1083 | -#if defined(USE_TCL_STUBS) | |
| 1084 | - fossil_print("USE_TCL_STUBS\n"); | |
| 1085 | -#endif | |
| 1086 | -#if defined(FOSSIL_ENABLE_TCL_STUBS) | |
| 1087 | - fossil_print("TCL_STUBS\n"); | |
| 1088 | -#endif | |
| 1089 | -#if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) | |
| 1090 | - fossil_print("TCL_PRIVATE_STUBS\n"); | |
| 1091 | -#endif | |
| 1092 | -#if defined(FOSSIL_ENABLE_JSON) | |
| 1093 | - fossil_print("JSON (API %s)\n", FOSSIL_JSON_API_VERSION); | |
| 1094 | -#endif | |
| 1095 | -#if defined(BROKEN_MINGW_CMDLINE) | |
| 1096 | - fossil_print("MBCS_COMMAND_LINE\n"); | |
| 1097 | -#else | |
| 1098 | - fossil_print("UNICODE_COMMAND_LINE\n"); | |
| 1099 | -#endif | |
| 1100 | -#if defined(FOSSIL_DYNAMIC_BUILD) | |
| 1101 | - fossil_print("DYNAMIC_BUILD\n"); | |
| 1102 | -#else | |
| 1103 | - fossil_print("STATIC_BUILD\n"); | |
| 1104 | -#endif | |
| 1105 | - } | |
| 1115 | + get_version_blob(&versionInfo, verboseFlag); | |
| 1116 | + fossil_print("%s", blob_str(&versionInfo)); | |
| 1117 | +} | |
| 1118 | + | |
| 1119 | + | |
| 1120 | +/* | |
| 1121 | +** WEBPAGE: test-version | |
| 1122 | +** | |
| 1123 | +** Show the version information for Fossil. | |
| 1124 | +** | |
| 1125 | +** Query parameters: | |
| 1126 | +** | |
| 1127 | +** verbose Show all available details. | |
| 1128 | +*/ | |
| 1129 | +void test_version_page(void){ | |
| 1130 | + Blob versionInfo; | |
| 1131 | + int verboseFlag = P("verbose")!=0; | |
| 1132 | + | |
| 1133 | + style_header("Version Information"); | |
| 1134 | + get_version_blob(&versionInfo, verboseFlag); | |
| 1135 | + @ <blockquote><pre> | |
| 1136 | + @ %h(blob_str(&versionInfo)) | |
| 1137 | + @ </pre></blockquote> | |
| 1138 | + style_footer(); | |
| 1106 | 1139 | } |
| 1107 | 1140 | |
| 1108 | 1141 | |
| 1109 | 1142 | /* |
| 1110 | 1143 | ** COMMAND: help |
| 1111 | 1144 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -1009,10 +1009,83 @@ | |
| 1009 | const char *get_version(){ |
| 1010 | static const char version[] = RELEASE_VERSION " " MANIFEST_VERSION " " |
| 1011 | MANIFEST_DATE " UTC"; |
| 1012 | return version; |
| 1013 | } |
| 1014 | |
| 1015 | /* |
| 1016 | ** This function returns the user-agent string for Fossil, for |
| 1017 | ** use in HTTP(S) requests. |
| 1018 | */ |
| @@ -1019,10 +1092,11 @@ | |
| 1019 | const char *get_user_agent(){ |
| 1020 | static const char version[] = "Fossil/" RELEASE_VERSION " (" MANIFEST_DATE |
| 1021 | " " MANIFEST_VERSION ")"; |
| 1022 | return version; |
| 1023 | } |
| 1024 | |
| 1025 | /* |
| 1026 | ** COMMAND: version |
| 1027 | ** |
| 1028 | ** Usage: %fossil version ?-verbose|-v? |
| @@ -1031,80 +1105,39 @@ | |
| 1031 | ** If the verbose option is specified, additional details will |
| 1032 | ** be output about what optional features this binary was compiled |
| 1033 | ** with |
| 1034 | */ |
| 1035 | void version_cmd(void){ |
| 1036 | int verboseFlag = 0; |
| 1037 | |
| 1038 | fossil_print("This is fossil version %s\n", get_version()); |
| 1039 | verboseFlag = find_option("verbose","v",0)!=0; |
| 1040 | |
| 1041 | /* We should be done with options.. */ |
| 1042 | verify_all_options(); |
| 1043 | |
| 1044 | if(!verboseFlag){ |
| 1045 | return; |
| 1046 | }else{ |
| 1047 | #if defined(FOSSIL_ENABLE_TCL) |
| 1048 | int rc; |
| 1049 | const char *zRc; |
| 1050 | #endif |
| 1051 | fossil_print("Compiled on %s %s using %s (%d-bit)\n", |
| 1052 | __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); |
| 1053 | fossil_print("SQLite %s %.30s\n", sqlite3_libversion(), sqlite3_sourceid()); |
| 1054 | fossil_print("Schema version %s\n", AUX_SCHEMA_MAX); |
| 1055 | #if defined(FOSSIL_ENABLE_MINIZ) |
| 1056 | fossil_print("miniz %s, loaded %s\n", MZ_VERSION, mz_version()); |
| 1057 | #else |
| 1058 | fossil_print("zlib %s, loaded %s\n", ZLIB_VERSION, zlibVersion()); |
| 1059 | #endif |
| 1060 | #if defined(FOSSIL_ENABLE_SSL) |
| 1061 | fossil_print("SSL (%s)\n", SSLeay_version(SSLEAY_VERSION)); |
| 1062 | #endif |
| 1063 | #if defined(FOSSIL_ENABLE_LEGACY_MV_RM) |
| 1064 | fossil_print("LEGACY_MV_RM\n"); |
| 1065 | #endif |
| 1066 | #if defined(FOSSIL_ENABLE_EXEC_REL_PATHS) |
| 1067 | fossil_print("EXEC_REL_PATHS\n"); |
| 1068 | #endif |
| 1069 | #if defined(FOSSIL_ENABLE_TH1_DOCS) |
| 1070 | fossil_print("TH1_DOCS\n"); |
| 1071 | #endif |
| 1072 | #if defined(FOSSIL_ENABLE_TH1_HOOKS) |
| 1073 | fossil_print("TH1_HOOKS\n"); |
| 1074 | #endif |
| 1075 | #if defined(FOSSIL_ENABLE_TCL) |
| 1076 | Th_FossilInit(TH_INIT_DEFAULT | TH_INIT_FORCE_TCL); |
| 1077 | rc = Th_Eval(g.interp, 0, "tclInvoke info patchlevel", -1); |
| 1078 | zRc = Th_ReturnCodeName(rc, 0); |
| 1079 | fossil_print("TCL (Tcl %s, loaded %s: %s)\n", |
| 1080 | TCL_PATCH_LEVEL, zRc, Th_GetResult(g.interp, 0) |
| 1081 | ); |
| 1082 | #endif |
| 1083 | #if defined(USE_TCL_STUBS) |
| 1084 | fossil_print("USE_TCL_STUBS\n"); |
| 1085 | #endif |
| 1086 | #if defined(FOSSIL_ENABLE_TCL_STUBS) |
| 1087 | fossil_print("TCL_STUBS\n"); |
| 1088 | #endif |
| 1089 | #if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) |
| 1090 | fossil_print("TCL_PRIVATE_STUBS\n"); |
| 1091 | #endif |
| 1092 | #if defined(FOSSIL_ENABLE_JSON) |
| 1093 | fossil_print("JSON (API %s)\n", FOSSIL_JSON_API_VERSION); |
| 1094 | #endif |
| 1095 | #if defined(BROKEN_MINGW_CMDLINE) |
| 1096 | fossil_print("MBCS_COMMAND_LINE\n"); |
| 1097 | #else |
| 1098 | fossil_print("UNICODE_COMMAND_LINE\n"); |
| 1099 | #endif |
| 1100 | #if defined(FOSSIL_DYNAMIC_BUILD) |
| 1101 | fossil_print("DYNAMIC_BUILD\n"); |
| 1102 | #else |
| 1103 | fossil_print("STATIC_BUILD\n"); |
| 1104 | #endif |
| 1105 | } |
| 1106 | } |
| 1107 | |
| 1108 | |
| 1109 | /* |
| 1110 | ** COMMAND: help |
| 1111 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -1009,10 +1009,83 @@ | |
| 1009 | const char *get_version(){ |
| 1010 | static const char version[] = RELEASE_VERSION " " MANIFEST_VERSION " " |
| 1011 | MANIFEST_DATE " UTC"; |
| 1012 | return version; |
| 1013 | } |
| 1014 | |
| 1015 | /* |
| 1016 | ** This function populates a blob with version information. It is used by |
| 1017 | ** the "version" command and "test-version" web page. It assumes the blob |
| 1018 | ** passed to it is uninitialized; otherwise, it will leak memory. |
| 1019 | */ |
| 1020 | static void get_version_blob( |
| 1021 | Blob *pOut, /* Write the manifest here */ |
| 1022 | int bVerbose /* Non-zero for full information. */ |
| 1023 | ){ |
| 1024 | #if defined(FOSSIL_ENABLE_TCL) |
| 1025 | int rc; |
| 1026 | const char *zRc; |
| 1027 | #endif |
| 1028 | blob_zero(pOut); |
| 1029 | blob_appendf(pOut, "This is fossil version %s\n", get_version()); |
| 1030 | if( !bVerbose ) return; |
| 1031 | blob_appendf(pOut, "Compiled on %s %s using %s (%d-bit)\n", |
| 1032 | __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); |
| 1033 | blob_appendf(pOut, "SQLite %s %.30s\n", sqlite3_libversion(), |
| 1034 | sqlite3_sourceid()); |
| 1035 | blob_appendf(pOut, "Schema version %s\n", AUX_SCHEMA_MAX); |
| 1036 | #if defined(FOSSIL_ENABLE_MINIZ) |
| 1037 | blob_appendf(pOut, "miniz %s, loaded %s\n", MZ_VERSION, mz_version()); |
| 1038 | #else |
| 1039 | blob_appendf(pOut, "zlib %s, loaded %s\n", ZLIB_VERSION, zlibVersion()); |
| 1040 | #endif |
| 1041 | #if defined(FOSSIL_ENABLE_SSL) |
| 1042 | blob_appendf(pOut, "SSL (%s)\n", SSLeay_version(SSLEAY_VERSION)); |
| 1043 | #endif |
| 1044 | #if defined(FOSSIL_ENABLE_LEGACY_MV_RM) |
| 1045 | blob_append(pOut, "LEGACY_MV_RM\n", -1); |
| 1046 | #endif |
| 1047 | #if defined(FOSSIL_ENABLE_EXEC_REL_PATHS) |
| 1048 | blob_append(pOut, "EXEC_REL_PATHS\n", -1); |
| 1049 | #endif |
| 1050 | #if defined(FOSSIL_ENABLE_TH1_DOCS) |
| 1051 | blob_append(pOut, "TH1_DOCS\n", -1); |
| 1052 | #endif |
| 1053 | #if defined(FOSSIL_ENABLE_TH1_HOOKS) |
| 1054 | blob_append(pOut, "TH1_HOOKS\n", -1); |
| 1055 | #endif |
| 1056 | #if defined(FOSSIL_ENABLE_TCL) |
| 1057 | Th_FossilInit(TH_INIT_DEFAULT | TH_INIT_FORCE_TCL); |
| 1058 | rc = Th_Eval(g.interp, 0, "tclInvoke info patchlevel", -1); |
| 1059 | zRc = Th_ReturnCodeName(rc, 0); |
| 1060 | blob_appendf(pOut, "TCL (Tcl %s, loaded %s: %s)\n", |
| 1061 | TCL_PATCH_LEVEL, zRc, Th_GetResult(g.interp, 0) |
| 1062 | ); |
| 1063 | #endif |
| 1064 | #if defined(USE_TCL_STUBS) |
| 1065 | blob_append(pOut, "USE_TCL_STUBS\n", -1); |
| 1066 | #endif |
| 1067 | #if defined(FOSSIL_ENABLE_TCL_STUBS) |
| 1068 | blob_append(pOut, "TCL_STUBS\n", -1); |
| 1069 | #endif |
| 1070 | #if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) |
| 1071 | blob_append(pOut, "TCL_PRIVATE_STUBS\n", -1); |
| 1072 | #endif |
| 1073 | #if defined(FOSSIL_ENABLE_JSON) |
| 1074 | blob_appendf(pOut, "JSON (API %s)\n", FOSSIL_JSON_API_VERSION); |
| 1075 | #endif |
| 1076 | #if defined(BROKEN_MINGW_CMDLINE) |
| 1077 | blob_append(pOut, "MBCS_COMMAND_LINE\n", -1); |
| 1078 | #else |
| 1079 | blob_append(pOut, "UNICODE_COMMAND_LINE\n", -1); |
| 1080 | #endif |
| 1081 | #if defined(FOSSIL_DYNAMIC_BUILD) |
| 1082 | blob_append(pOut, "DYNAMIC_BUILD\n", -1); |
| 1083 | #else |
| 1084 | blob_append(pOut, "STATIC_BUILD\n", -1); |
| 1085 | #endif |
| 1086 | } |
| 1087 | |
| 1088 | /* |
| 1089 | ** This function returns the user-agent string for Fossil, for |
| 1090 | ** use in HTTP(S) requests. |
| 1091 | */ |
| @@ -1019,10 +1092,11 @@ | |
| 1092 | const char *get_user_agent(){ |
| 1093 | static const char version[] = "Fossil/" RELEASE_VERSION " (" MANIFEST_DATE |
| 1094 | " " MANIFEST_VERSION ")"; |
| 1095 | return version; |
| 1096 | } |
| 1097 | |
| 1098 | |
| 1099 | /* |
| 1100 | ** COMMAND: version |
| 1101 | ** |
| 1102 | ** Usage: %fossil version ?-verbose|-v? |
| @@ -1031,80 +1105,39 @@ | |
| 1105 | ** If the verbose option is specified, additional details will |
| 1106 | ** be output about what optional features this binary was compiled |
| 1107 | ** with |
| 1108 | */ |
| 1109 | void version_cmd(void){ |
| 1110 | Blob versionInfo; |
| 1111 | int verboseFlag = find_option("verbose","v",0)!=0; |
| 1112 | |
| 1113 | /* We should be done with options.. */ |
| 1114 | verify_all_options(); |
| 1115 | get_version_blob(&versionInfo, verboseFlag); |
| 1116 | fossil_print("%s", blob_str(&versionInfo)); |
| 1117 | } |
| 1118 | |
| 1119 | |
| 1120 | /* |
| 1121 | ** WEBPAGE: test-version |
| 1122 | ** |
| 1123 | ** Show the version information for Fossil. |
| 1124 | ** |
| 1125 | ** Query parameters: |
| 1126 | ** |
| 1127 | ** verbose Show all available details. |
| 1128 | */ |
| 1129 | void test_version_page(void){ |
| 1130 | Blob versionInfo; |
| 1131 | int verboseFlag = P("verbose")!=0; |
| 1132 | |
| 1133 | style_header("Version Information"); |
| 1134 | get_version_blob(&versionInfo, verboseFlag); |
| 1135 | @ <blockquote><pre> |
| 1136 | @ %h(blob_str(&versionInfo)) |
| 1137 | @ </pre></blockquote> |
| 1138 | style_footer(); |
| 1139 | } |
| 1140 | |
| 1141 | |
| 1142 | /* |
| 1143 | ** COMMAND: help |
| 1144 |