Class: Bake::Create

Inherits:
Object
  • Object
show all
Defined in:
lib/bake/options/create.rb

Class Method Summary collapse

Class Method Details

.checkFile(name) ⇒ Object



65
66
67
68
69
70
# File 'lib/bake/options/create.rb', line 65

def self.checkFile(name)
  if File.exists?(name)
    puts "#{name} already exists"
    ExitHelper.exit(1)  
  end
end

.customTemplateObject



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/bake/options/create.rb', line 44

def self.customTemplate
  "Project default: lib {\n"+
  "\n"+
  "  Responsible {\n"+
  "    Person \"#{ENV["USER"]}\"\n"+
  "  }\n"+
  "\n"+
  "  CustomConfig lib {\n"+
  "    Files \"src/**/*.cpp\"\n"+
  "    IncludeDir \"include\"\n"+
  "  }\n"+
  "}\n"
end

.exeTemplateObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/bake/options/create.rb', line 7

def self.exeTemplate
  "Project default: main {\n"+
  "\n"+
  "  Responsible {\n"+
  "    Person \"#{ENV["USER"]}\"\n"+
  "  }\n"+
  "\n"+
  "  ExecutableConfig main {\n"+
  "    # Dependency ...\n"+
  "    Files \"src/**/*.cpp\"\n"+
  "    IncludeDir \"include\"\n"+
  "    DefaultToolchain GCC\n"+
  "  }\n"+
  "}\n"
end

.libTemplateObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/bake/options/create.rb', line 23

def self.libTemplate
  "Project default: lib {\n"+
  "\n"+
  "  Responsible {\n"+
  "    Person \"#{ENV["USER"]}\"\n"+
  "  }\n"+
  "\n"+
  "  LibraryConfig lib {\n"+
  "    Files \"src/**/*.cpp\"\n"+
  "    IncludeDir \"include\"\n"+
  "  }\n"+
  "\n"+
  "  ExecutableConfig UnitTest {\n"+
  "    Dependency config: lib\n"+
  "    Files \"test/src/**/*.cpp\"\n"+
  "    IncludeDir \"include\"\n"+
  "    DefaultToolchain GCC\n"+
  "  }\n"+
  "}\n"
end

.mainTemplateObject



58
59
60
61
62
63
# File 'lib/bake/options/create.rb', line 58

def self.mainTemplate
  "int main()\n"+
  "{\n"+
  "  return 0;\n"+
  "}\n"
end

.proj(type) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/bake/options/create.rb', line 72

def self.proj(type)
  checkFile("Project.meta")
  checkFile("src/main.cpp") if (type == "exe")
  FileUtils::mkdir_p "src"
  FileUtils::mkdir_p "include"
        
  if (type == "lib")
    File.write("Project.meta", libTemplate);
  elsif (type == "exe")
    File.write("Project.meta", exeTemplate);
    File.write("src/main.cpp", mainTemplate);
  elsif (type == "custom")
    File.write("Project.meta", customTemplate);
  else
    puts "'--create' must be followed by 'lib', 'exe' or 'custom'"
    ExitHelper.exit(1)  
  end
    
  puts "Project created."
  ExitHelper.exit(1)    
end