'''
Trac wiki macro for printing the last modified version of a wiki page.
'''

import re

def execute(hdf, txt, env):
  # Title of the wiki page
  page_name = hdf.getValue ('title', '')

  if page_name:
    # If page name is set, remove trailing bracket
    page_name = re.sub (' \(.*$', '', page_name)

  else:
    # If page name is not set, use start page
    page_name = 'WikiStart'

  # Set cursor to point to current Trac database
  db     = env.get_db_cnx ()
  cursor = db.cursor ()

  # Get latest version number of current wiki page
  cursor.execute (
    "SELECT version FROM wiki WHERE name == %s ORDER BY version DESC LIMIT 1",
    page_name
  )

  # Print string representation of the latest version number
  return str (cursor.fetchone () [0])

