   # `for arg, i in args` but allowing i to advance and args to get appended to
   i = 0
   loop
+    ## Automatically run Maketile if we're out of arguments
+    ## and haven't processed any files yet.
     if i >= args.length and not numFiles and not ranMaketile and
        (maketile ?= loadMaketile settings)?
       ranMaketile = true

        showHelp = false
        console.log "Unrecognized Maketile '#{maketile.filename}' of type '#{maketile?.constructor?.name}'"
    break if i >= args.length
    switch (arg = args[i])
      when '-h', '--help'
        help()

  return unless filenames.length
  inputRequire filenames.sort().pop(), settings

dashArgRegExp = /^-([a-zA-Z]{2,})$/

inputCache = new Map  # maps filenames to previously loaded `Input`s
main = (args = process.argv[2..]) ->
  showHelp = 'No filename arguments and no Maketile to run; showing --help'
