# File lib/ramaze/tool/bin.rb, line 180
        def usage # {{{
          txt = [
            "\n  Usage:",
            "ramaze <start [PIDFILE]|stop [PIDFILE]|restart [PIDFILE]|status [PIDFILE]|create PROJECT|console> [ruby/rack options]\n",
            "Commands:\n",
            "  * All commands which take an optional PIDFILE (defaults to PROJECT.pid otherwise).",
            "  * All commands which start a ramaze instance will default to webrick on port 7000",
            "    unless you supply the rack options -p/--port PORT and/or * -s/--server SERVER.\n",
            " start   - Starts an instance of this application.\n",
            " stop    - Stops a running instance of this application.\n",
            " restart - Stops running instance of this application, then starts it back up.  Pidfile",
            "           (if supplied) is used for both stop and start.\n",
            " status  - Gives status of a running ramaze instance\n",
            " create  - Creates a new prototype Ramaze application in a directory named PROJECT in",
            "           the current directory.  ramaze create foo would make ./foo containing an",
            "           application prototype. Rack options are ignored here.\n",
            " console - Starts an irb console with app.rb (and irb completion) loaded. This command",
            "           ignores rack options, ARGV is passed on to IRB.\n\n\t"
          ].join("\n\t")

          if is_windows?
            txt << %x{ruby #{rackup_path} --help}.split("\n").reject { |line| line.match(/^Usage:/) }.join("\n\t")
          else
            txt << %x{#{rackup_path} --help}.split("\n").reject { |line| line.match(/^Usage:/) }.join("\n\t")
          end

          txt.gsub(/^\t$/, '')
        end