Sha256: 8b81afcbc267d71345a3d6044c07a4b4a60d4c00757e26f9566251d437b3275c

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

require 'thor'
require 'active_support/inflector'
require 'phoenix-cli'

trap("SIGINT") { exit! }

module PhoenixCli
  class CLI < Thor
    include Thor::Actions

    map %w(-v --version) => :version

    desc "install", "Install framework"
    def install
      exec('mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez')
    end

    desc "new", "Create new project"
    def new(path='')
      exec("mix phoenix.new #{path}")
    end

    desc "server", "Create new project"
    def server
      exec("mix phoenix.server")
    end

    desc "deps", "Install dependences"
    def deps
      exec("mix deps.get")
    end

    desc "console", "Run phoenix console"
    def console
      exec("iex -S mix")
    end

    desc "migrate", "Run ecto migrations"
    def migrate
      exec("mix ecto.migrate")
    end

    desc "generate", "Run generators"
    def generate(generator, resource_name, *args)
      if generator == 'scaffold'
        commands = args.join(' ')
        exec("mix phoenix.gen.html #{resource_name.camelize} #{resource_name.pluralize} #{commands}")
      end
    end

    desc "routes", "Show phoenix routes"
    def routes
      exec("mix phoenix.routes")
    end

    desc 'version', 'phoenix-cli version'
    def version
      puts PhoenixCli::VERSION
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
phoenix-cli-0.0.3 lib/phoenix-cli/cli.rb