Sha256: 106ca20351e792bdb3fa5593ab1e97169335004d5d4bc0bfd19d2c784b140acf

Contents?: true

Size: 1.65 KB

Versions: 18

Compression:

Stored size: 1.65 KB

Contents

#!/usr/bin/env ruby

command = ARGV[0]

error(%%
No command specified, please use one of the following
  new:     start a new project
  update:  update mvp inside current project
%) unless command

case command.downcase
when 'new'
  project = if ARGV[1]
    ARGV[1]
  else
    $stdin.reopen(File.open("/dev/tty", "r"))
    print "Project name? "
    STDIN.gets.chomp
  end

  error('Must specify a project name') if project == ""

  slug = slugify(project)

  puts
  run "cp -r #{File.dirname(__FILE__)}/../project #{slug}"

  puts
  puts "\n== Initializing Project =="
  files = Dir.glob("#{slug}/**/*").select { |f| File.file?(f) }
  files.each do |file_name|
    begin
      puts "Replacing #{file_name}"
      text = File.read(file_name)
      new_contents = text.gsub(/__PROJECT_NAME__/, project)
                         .gsub(/__PROJECT_NAME_SLUG__/, slug)

      File.open(file_name, "w") {|file| file.puts new_contents }
    rescue

    end
  end
  run "cd #{slug} && rm -rf .git && git init"

  run "cd #{slug}; bin/setup", "\n== Project Setup"

when 'update'
  run "bundle update minimum_viable_product"
  # npm has a bug where it won't update new dependencies
  # https://github.com/npm/npm/issues/1341
  run "rm -rf node_modules; npm install"
when '-v','version'
  version = File.read(File.dirname(__FILE__) + '/../VERSION')
  puts "Version #{version}"
end

BEGIN {
  def slugify(name)
    slug = name.gsub(/'/, '').gsub(/[^a-z0-9]+/, '_')
    slug.chop! if slug[-1] == '-'
    slug
  end

  def error(message)
    puts
    puts "Error: #{message}"
    exit 1
  end

  def run(cmd, message=nil)
    if message
      puts
      puts message
    end

    system cmd
  end
}

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
mvpkit-0.8.1 bin/mvp
mvpkit-0.8.0 bin/mvp
minimum_viable_product-0.7.15 bin/mvp
minimum_viable_product-0.7.14 bin/mvp
minimum_viable_product-0.7.13 bin/mvp
minimum_viable_product-0.7.12 bin/mvp
minimum_viable_product-0.7.11 bin/mvp
minimum_viable_product-0.7.10 bin/mvp
minimum_viable_product-0.7.9 bin/mvp
minimum_viable_product-0.7.8 bin/mvp
minimum_viable_product-0.7.7 bin/mvp
minimum_viable_product-0.7.6 bin/mvp
minimum_viable_product-0.7.5 bin/mvp
minimum_viable_product-0.7.4 bin/mvp
minimum_viable_product-0.7.3 bin/mvp
minimum_viable_product-0.7.2 bin/mvp
minimum_viable_product-0.7.1 bin/mvp
minimum_viable_product-0.7.0 bin/mvp