aboutsummaryrefslogtreecommitdiff
path: root/captain/captian.f90
diff options
context:
space:
mode:
authorJeffrey Armstrong <jeff@approximatrix.com>2021-05-06 10:17:52 -0400
committerJeffrey Armstrong <jeff@approximatrix.com>2021-05-06 10:17:52 -0400
commitb9cac9bb26fe388abff34fa4fc562b0804cabb2e (patch)
treeef226cdcb40e627b74f013ff7fc962a72054debb /captain/captian.f90
parent8ca6d21882c521fb78f1325e9a88a558364b3ad4 (diff)
downloadlevitating-b9cac9bb26fe388abff34fa4fc562b0804cabb2e.tar.gz
levitating-b9cac9bb26fe388abff34fa4fc562b0804cabb2e.zip
Fixed spelling of captain.
Diffstat (limited to 'captain/captian.f90')
-rw-r--r--captain/captian.f90140
1 files changed, 0 insertions, 140 deletions
diff --git a/captain/captian.f90 b/captain/captian.f90
deleted file mode 100644
index 76ea768..0000000
--- a/captain/captian.f90
+++ /dev/null
@@ -1,140 +0,0 @@
-! Copyright (c) 2021 Approximatrix, LLC <support@approximatrix.com>
-!
-! Permission is hereby granted, free of charge, to any person obtaining a copy
-! of this software and associated documentation files (the "Software"), to deal
-! in the Software without restriction, including without limitation the rights
-! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-! copies of the Software, and to permit persons to whom the Software is
-! furnished to do so, subject to the following conditions:
-!
-! The above copyright notice and this permission notice shall be included in
-! all copies or substantial portions of the Software.
-!
-! The Software shall be used for Good, not Evil.
-!
-! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-! SOFTWARE.
-
-program captain
-use captain_db
-use config
-use logging, only: initialize_log => initialize, shutdown_log => shutdown, write_log, LOG_INFO
-use gemini, only: handle_gemini => handle_request
-use web, only: handle_web => handle_request
-implicit none
-
- integer::mode
- integer, parameter::MODE_GEMINI = 1, &
- MODE_CGI_HTML = 2
-
- call random_seed() ! For possible crypto
-
- call parse_options()
-
- call initialize_log(log_filename, loglevel)
-
- call initialize_db(database_filename)
-
- select case(mode)
- case(MODE_GEMINI)
- call handle_gemini()
- case(MODE_CGI_HTML)
- call handle_web()
- end select
-
- call shutdown_db()
-
- call write_log("Process complete", LOG_INFO)
-
- call shutdown_log()
-
-contains
-
- subroutine usage()
- implicit none
-
- character(len=256)::pname
-
- call get_command_argument(0, pname)
-
- Print *, "Usage: "//trim(pname)//" <options>"
- Print *, " "
-
- Print *, "Options:"
- Print *, " -h Display this help"
- Print *, " -c <configfile> Use the specified config file"
- Print *, " -g Operate in Gemini mode"
- Print *, " -w Operate in CGI mode (default)"
- Print *, " "
- Print *, "Config file can also be specified via the environment variables:"
- Print *, " LEVITATING_CONFIG_CGI Path to config for CGI mode"
- Print *, " LEVITATING_CONFIG_GEMINI Path to config for Gemini mode"
-
- end subroutine usage
-
- subroutine parse_options
- use config
- implicit none
-
- character(len=1024)::option
- logical::config_loaded
- integer::i
-
- config_loaded = .false.
- mode = MODE_CGI_HTML
- loglevel = 3
-
- i = 1
- do while(i <= command_argument_count())
- call get_command_argument(i, option)
-
- if(trim(option) == "-h") then
- call usage()
- stop
-
- else if(trim(option) == "-g") then
- mode = MODE_GEMINI
-
- else if(trim(option) == "-c") then
- i = i + 1
- call get_command_argument(i, option)
- call load_configuration(trim(option))
- config_loaded = .true.
-
- end if
-
- i = i + 1
- end do
-
- if(.not. config_loaded) then
- call get_environment_variable("LEVITATING_CONFIG_CGI", value=option, status=i)
- if(i == 0) then
- call load_configuration(trim(option))
- config_loaded = .true.
- mode = MODE_CGI_HTML
- end if
- end if
-
- if(.not. config_loaded) then
- call get_environment_variable("LEVITATING_CONFIG_GEMINI", value=option, status=i)
- if(i == 0) then
- call load_configuration(trim(option))
- config_loaded = .true.
- mode = MODE_GEMINI
- end if
- end if
-
- ! Assign working directory from command if not specified
- if(.not. config_loaded) then
- Print *, "No configuration file specified"
- stop
- end if
-
- end subroutine parse_options
-
-end program captain \ No newline at end of file