Module: Create

Extended by:
Create
Included in:
Create
Defined in:
lib/commands/create.rb

Instance Method Summary collapse

Instance Method Details

#base(project_name) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/commands/create.rb', line 29

def base(project_name)
  unless $settings.projects_directory
    Enzyme.error("The `sync.projects_directory` setting is not set. Set it using `enzyme config projects_directory \"/Users/me/Projects\"`.")
    return
  end

  system "mkdir #{$settings.projects_directory}/#{project_name}"
  system "mkdir #{$settings.projects_directory}/#{project_name}/resources"
  system "mkdir #{$settings.projects_directory}/#{project_name}/resources/client"
  system "touch #{$settings.projects_directory}/#{project_name}/.enzyme.yml"

  Dir.chdir("#{$settings.projects_directory}/#{project_name}")

  Config.set('project_name', project_name)
  Config.set('project_type', nil)
end

#koi(project_name) ⇒ Object



46
47
48
# File 'lib/commands/create.rb', line 46

def koi(project_name)
  Enzyme.error("Koi projects are not avaliable in this version of Enzyme (#{$version}).")
end

#pms(project_name) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/commands/create.rb', line 50

def pms(project_name)
  unless $settings.projects_directory
    Enzyme.error("The `sync.projects_directory` setting is not set. Set it using `enzyme config projects_directory \"/Users/me/Projects\"`.")
    return
  end

  unless $settings.github.user
    Enzyme.error("The `sync.github.user` setting is not set. Set it using `enzyme config github.user \"me\"`.")
    return
  end

  unless $settings.github.token
    Enzyme.error("The `sync.github.token` setting is not set. Set it using `enzyme config github.token \"0123456789abcdef0123456789abcdef\"`.")
    return
  end

  base(project_name)

  Config.set('project_type', 'pms')

  system "curl -o '/tmp/#{project_name}.zip' -F 'login=#{$settings.github.user}' -F 'token=#{$settings.github.token}' -L 'https://github.com/katalyst/pms/zipball/v0.4.2alpha03'"
  system "unzip '/tmp/#{project_name}.zip' -d '/tmp/#{project_name}.temp'"
  system "rm '/tmp/#{project_name}.zip'"

  extracted_dir = Dir.entries("/tmp/#{project_name}.temp")[2]

  system "mv /tmp/#{project_name}.temp/#{extracted_dir}/* #{$settings.projects_directory}/#{project_name}/"
  system "rm -r '/tmp/#{project_name}.temp'"
end

#runObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/commands/create.rb', line 6

def run()
  ARGV.reject { |x| x.start_with?("-") }
  project_name = ARGV.shift
  project_type = ARGV.shift

  if project_name
    if project_type
      case project_type.to_sym
      when :pms
        pms(project_name)
      when :koi
        koi(project_name)
      else
        Enzyme.error("Unknown project type `#{project_type}`.")
      end
    else
      base(project_name)
    end
  else
    Enzyme.error("A project name must be given. For example: `enzyme create project_name`")
  end
end