module special_filenames implicit none contains function get_special_full_filename(category, filename) result(res) use utilities, only: combine_paths use config implicit none character(*), intent(in)::category, filename character(len=:), pointer::res res => null() if(trim(category) == "releases") then allocate(character(len=(len_trim(release_dir)+len_trim(filename)+1)) :: res) call combine_paths(release_dir, filename, res) else if(trim(category) == "uploads") then allocate(character(len=(len_trim(release_dir)+len_trim(filename)+1)) :: res) call combine_paths(release_dir, filename, res) else if(trim(category) == "results") then allocate(character(len=(len_trim(results_dir)+len_trim(filename)+1)) :: res) call combine_paths(results_dir, filename, res) else if(trim(category) == "static") then allocate(character(len=(len_trim(static_dir)+len_trim(filename)+1)) :: res) call combine_paths(static_dir, filename, res) else if(trim(category) == "favicon.txt") then allocate(character(len=(len_trim(static_dir)+len_trim(filename)+1)) :: res) call combine_paths(static_dir, filename, res) else if(trim(category) == "instructions") then allocate(character(len=(len_trim(instructions_dir)+len_trim(filename)+1)) :: res) call combine_paths(instructions_dir, filename, res) end if end function get_special_full_filename function get_instructions_static_filename(instruction_id) result(res) use captain_db implicit none integer, intent(in)::instruction_id character(len=:), pointer::res character(PLAYER_NAME_LENGTH)::instruction_name call get_instruction_name(instruction_id, instruction_name) res => get_special_full_filename("instructions", trim(instruction_name)//".json") end function get_instructions_static_filename function get_task_result_static_filename(job_id, task_num) result(res) use config implicit none integer, intent(in)::job_id, task_num character(len=:), pointer::res character(64)::filename character(12)::job_text, task_text write(job_text, '(I8)') job_id write(task_text, '(I8)') task_num filename = "results-job"//trim(adjustl(job_text))//"-task"//trim(adjustl(task_text))//".txt" res => get_special_full_filename("results", filename) end function get_task_result_static_filename end module special_filenames