diff options
Diffstat (limited to 'org/cgi_spine_search.org')
-rw-r--r-- | org/cgi_spine_search.org | 97 |
1 files changed, 29 insertions, 68 deletions
diff --git a/org/cgi_spine_search.org b/org/cgi_spine_search.org index 0168f66..b695783 100644 --- a/org/cgi_spine_search.org +++ b/org/cgi_spine_search.org @@ -20,34 +20,6 @@ [[./spine_build_scaffold.org][make/build]] VERSION * 0. version.txt configuration.txt (set version & configuration) -** set configuration tangle SET :configuration: - -##+HEADER: :tangle "../views/configuration_suggested.txt" -#+BEGIN_SRC d -/+ obt - org-mode generated file +/ -struct Cfg { - string www_http = "http"; - string www_doc_root = "/srv/www/spine/static"; // "/var/www/html" - string www_domain = "localhost"; - string www_domain_doc_root = "localhost"; - string www_url_doc_root = "http://localhost"; - string cgi_bin_root = "/var/www/cgi/cgi-bin/"; // "/usr/lib/cgi-bin" - string cgi_bin_part = "cgi-bin"; - string cgi_filename = "spine_search"; // "spine-search" - string cgi_url_root = "http://localhost/cgi-bin"; - string cgi_port = ""; - string cgi_user = ""; - string cgi_url_action = "http://localhost/cgi-bin/spine_search"; - string cgi_title = "≅ SiSU Spine search"; - string db_sqlite_doc_root = "/srv/www/spine/static/sqlite/"; - string db_sqlite_filename = "spine.search.db"; - string default_language = "en"; - string default_papersize = "a4"; - string default_text_wrap = "80"; - string default_hash_digest = "sha256"; -} -enum _cfg = Cfg(); -#+END_SRC ** program version struct @@ -108,7 +80,7 @@ void cgi_function_intro(Cgi cgi) { <<spine_search_init_1>> <<spine_search_config>> <<spine_search_cgi_val>> - cv.db_selected = _cfg.filename_db; + cv.db_selected = _cfg.db_sqlite_filename; auto text_fields() { string canned_query_str = environment.get("QUERY_STRING", ""); if ("query_string" in cgi.post) { @@ -140,9 +112,9 @@ void cgi_function_intro(Cgi cgi) { string canned_url () { string _url = ""; if (environment.get("REQUEST_METHOD", "POST") == "POST") { - _url = conf.query_base ~ tf.canned_query; + _url = conf.query_base_url ~ tf.canned_query; } else if (environment.get("REQUEST_METHOD", "POST") == "GET") { - _url = conf.query_base ~ environment.get("QUERY_STRING", ""); + _url = conf.query_base_url ~ environment.get("QUERY_STRING", ""); } return _url; } @@ -204,7 +176,7 @@ void cgi_function_intro(Cgi cgi) { // <<spine_search_debug_info>> } } - auto db = Database(conf.db_path ~ cv.db_selected); + auto db = Database(conf.db_path ~ "/" ~ cv.db_selected); { uint sql_match_offset_counter(T)(T cv) { sql_match_offset_count += cv.sql_match_limit.to!uint; @@ -270,21 +242,24 @@ uint sql_match_offset_count = 0; **** config +see: cfte_configuation.org + #+NAME: spine_search_config #+BEGIN_SRC d <<spine_search_config_struct>> auto conf = Config(); conf.http_request_type = environment.get("REQUEST_SCHEME", _cfg.http_request_type); -conf.http_host = environment.get("HTTP_HOST", _cfg.http_host); -conf.web_doc_root_path = environment.get("DOCUMENT_ROOT", _cfg.doc_root_www); +conf.http_host = environment.get("SERVER_NAME", _cfg.http_host); +// conf.http_host = environment.get("HTTP_HOST", _cfg.http_host); +conf.web_doc_root_path = environment.get("DOCUMENT_ROOT", _cfg.www_doc_root); conf.doc_collection_sub_root = "<<doc_subroot_path>>"; // (output_path - web_doc_root_path) -conf.cgi_root = environment.get("CONTEXT_DOCUMENT_ROOT", _cfg.host_cgi_subpath); -conf.cgi_script = environment.get("SCRIPT_NAME", _cfg.filename_cgi); +conf.cgi_root = environment.get("CONTEXT_DOCUMENT_ROOT", _cfg.cgi_bin_subpath); +conf.cgi_script_name = environment.get("SCRIPT_NAME", _cfg.cgi_filename); +conf.query_base_url = conf.http_request_type ~ "://" ~ conf.http_host ~ "/" ~ conf.cgi_script_name ~ "?"; conf.query_string = environment.get("QUERY_STRING", ""); -conf.db_path = _cfg.doc_root_db; +conf.http_url = environment.get("HTTP_REFERER", conf.query_base_url ~ conf.query_string); conf.request_method = environment.get("REQUEST_METHOD", "POST"); -conf.query_base = conf.http_request_type ~ "://" ~ conf.http_host ~ conf.cgi_script ~ "?"; -conf.http_url = environment.get("HTTP_REFERER", conf.query_base ~ conf.query_string); +conf.db_path = _cfg.db_sqlite_path; #+END_SRC #+NAME: spine_search_config_struct @@ -296,13 +271,13 @@ struct Config { string web_doc_root_path; string doc_collection_sub_root; string cgi_root; - string cgi_script; + string cgi_script_name; string data_path_html; - string db_path; - string query_string; string http_url; + string query_base_url; + string query_string; string request_method; - string query_base; + string db_path; } #+END_SRC @@ -654,7 +629,6 @@ if (environment.get("REQUEST_METHOD", "POST") == "POST") { } #+END_SRC - **** show_matched_objects (string fn) {} #+NAME: spine_search_show_matched_objects @@ -832,9 +806,9 @@ string show_the_can = post_value("url"); string _the_can = ""; if (show_the_can == "checked") { tf = text_fields; - string method_get_url = conf.query_base ~ environment.get("QUERY_STRING", ""); - string method_post_url_construct = conf.query_base ~ tf.canned_query; - // assert(method_get_url == environment.get("HTTP_REFERER", conf.query_base ~ conf.query_string)); + string method_get_url = conf.query_base_url ~ environment.get("QUERY_STRING", ""); + string method_post_url_construct = conf.query_base_url ~ tf.canned_query; + // assert(method_get_url == environment.get("HTTP_REFERER", conf.query_base_url ~ conf.query_string)); if (conf.request_method == "POST") { _the_can = "<font size=\"2\" color=\"#666666\">" @@ -855,7 +829,7 @@ if (show_the_can == "checked") { ~ method_get_url ~ "</a></font>"; } - conf.http_url = conf.http_request_type ~ "://" ~ conf.http_host ~ conf.cgi_script ~ tf.canned_query; + conf.http_url = conf.http_request_type ~ "://" ~ conf.http_host ~ conf.cgi_script_name ~ tf.canned_query; } return _the_can; #+END_SRC @@ -901,7 +875,7 @@ return tip; form = format(q"┃ <<spine_search_form_html>> ┃", - _cfg.filename_cgi, + _cfg.cgi_filename, (post_value("ec") == "checked") ? post_value("sf", "field") : "", provide_tip, search_note, @@ -984,7 +958,7 @@ return val; #+NAME: spine_search_set_selections #+BEGIN_SRC d -cv.db_selected = set_value("selected_db", _cfg.filename_db); // selected_db_name == db (spine.search.db or whatever) +cv.db_selected = set_value("selected_db", _cfg.db_sqlite_filename); // selected_db_name == db (spine.search.db or whatever) cv.sql_match_limit = set_value("sml", "1000"); cv.sql_match_offset = set_value("smo", "0"); cv.search_text = set_value("sf", ""); @@ -1268,6 +1242,9 @@ if (!select_query_results.empty) { #+NAME: spine_search_debug_info #+BEGIN_SRC d +cgi.write("db with path: " ~ conf.db_path ~ "/" ~ cv.db_selected ~ "<br>\n"); +cgi.write("http url: " ~ conf.http_url ~ "<br>\n"); +cgi.write("query base url: " ~ conf.query_base_url ~ "<br>\n"); cgi.write("db_selected: " ~ cv.db_selected ~ "<br>\n"); cgi.write("search_text: " ~ cv.search_text ~ "<br>\n"); cgi.write("sql_match_limit: " ~ cv.sql_match_limit ~ ";\n"); @@ -2114,28 +2091,12 @@ _cfg.doc_root_cgi _cfg.doc_root_db #+END_SRC #+BEGIN_SRC text -<<url_doc_root>>/spine/static/sqlite/ +/var/www/sqlite/ #+END_SRC *** spine_search configuration.txt -#+HEADER: :tangle "../sundry/spine_search_cgi/views/configuration_suggested.txt" -#+BEGIN_SRC d -/+ obt - org-mode generated file +/ -struct Cfg { - string http_request_type = "http"; - string http_host = "localhost"; - string doc_root_www = "/srv/www/spine/static"; - string doc_root_cgi = "/var/www/cgi/cgi-bin/"; - string doc_root_db = "/srv/www/spine/static/sqlite/"; - string host_cgi_subpath = "/cgi-bin"; - // string subpath_cgi = "/cgi-bin/"; - string filename_cgi = "spine_search"; - string cgi_script_filename_with_any_subpath = "/cgi-bin/spine_search"; - string filename_db = "spine.search.db"; -} -enum _cfg = Cfg(); -#+END_SRC +see configuration_cfte.org *** document header including copyright & license |