<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
#!/usr/bin/env ruby
# Finds the latest Passenger crash log directory and prints its path.
# This tool is meant to make it easy to analyze local Passenger crash
# logs during debugging sessions. Instead of searching for the crash
# log directory path in the output and then copy-pasting that to the
# terminal, one can simply invoke one shell command:
#
#   less $(./dev/show-latest-crashlog-dir)/backtrace.log
#
# This will open the latest crash log's backtrace.log in 'less'.

def parse_path(path)
  File.basename(path).split('.')[1].to_i
end

def main
  dirs = Dir["/var/tmp/passenger-crash-log.*.*"].sort do |a, b|
    parse_path(a) <=> parse_path(b)
  end
  if dirs.empty?
    abort "No /var/tmp/passenger-crash-log.* directories found."
  else
    puts dirs.last
  end
end

main
