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 end module special_filenames