Class: Pave::Concrete
- Inherits:
-
Object
show all
- Includes:
- Shell
- Defined in:
- lib/pave/concrete.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Shell
#file_insert, included, #sh, #shell
Constructor Details
#initialize(name) ⇒ Concrete
14
15
16
|
# File 'lib/pave/concrete.rb', line 14
def initialize(name)
@name = name
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
5
6
7
|
# File 'lib/pave/concrete.rb', line 5
def name
@name
end
|
Class Method Details
.create(name) ⇒ Object
7
8
9
10
11
12
|
# File 'lib/pave/concrete.rb', line 7
def self.create(name)
say ""
return say "Options should be given after the application name. For details run: `pave help`" unless name.size > 0
say "Setting up Concrete5 in folder #{name}."
new(name).setup
end
|
Instance Method Details
#add_config_customizations ⇒ Object
58
59
60
61
62
|
# File 'lib/pave/concrete.rb', line 58
def add_config_customizations
config_file = "#{name}/concrete/core/controllers/single_pages/install.php"
insert_pattern = "['DB_DATABASE']) . \"');\\n\";"
file_insert config_file, insert_pattern, config_customizations
end
|
#clone_concrete5 ⇒ Object
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/pave/concrete.rb', line 32
def clone_concrete5
c5 = "concrete5.6.3.1"
c5_link = "http://www.concrete5.org/download_file/-/view/66159/8497/"
unless File.exists?(File.join(Dir.home, ".pave/#{c5}.zip"))
say "* Downloading #{c5}..."
sh "curl #{c5_link} > ~/.pave/#{c5}.zip"
end
say "* Copying Concrete5 into #{name}..."
sh "unzip -qq ~/.pave/#{c5}.zip && mv #{c5} #{name}"
end
|
#config_customizations ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/pave/concrete.rb', line 64
def config_customizations
command ="$configuration .= '\ndefine(\\\"ENABLE_NEWSFLOW_OVERLAY\\\", false);\ndefine(\\\"PERMISSIONS_MODEL\\\", \\\"advanced\\\");\ndefine(\\\"STATISTICS_TRACK_PAGE_VIEWS\\\", false);\ndefine(\\\"WHITE_LABEL_DASHBOARD_BACKGROUND_SRC\\\", \\\"/concrete/images/spacer.gif\\\");\ndefine(\\\"ENABLE_INTELLIGENT_SEARCH_HELP\\\", false);\n';\n"
command
end
|
#create_virtual_host ⇒ Object
87
88
89
90
91
92
93
94
|
# File 'lib/pave/concrete.rb', line 87
def create_virtual_host
say "* Setting up virtual host..."
if sh("sudo pave vh:create #{name}.site #{Dir.pwd}/#{name}") == 0
say "Successfully setup virtual host #{name}.site."
else
say "Virtual host not set up. Run `pave vh:create #{name}.site ./#{name}` to create it."
end
end
|
#gitignored ⇒ Object
77
78
79
80
81
82
83
84
85
|
# File 'lib/pave/concrete.rb', line 77
def gitignored
[
"files/*",
"!files/.keep",
".DS_Store",
".sass-cache",
"stylesheets"
]
end
|
#gitkept_folders ⇒ Object
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/pave/concrete.rb', line 118
def gitkept_folders
[
:blocks,
:elements,
:jobs,
:page_types,
:single_pages,
:themes,
:packages,
]
end
|
#in_project_dir? ⇒ Boolean
96
97
98
|
# File 'lib/pave/concrete.rb', line 96
def in_project_dir?
File.basename(Dir.pwd) == name
end
|
#modify_folder_permissions ⇒ Object
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# File 'lib/pave/concrete.rb', line 100
def modify_folder_permissions
say "* Modifying folder permissions..."
successful = world_writable_folders.map do |folder|
sh "sudo chmod -R 777 #{in_project_dir? ? folder.to_s : name + '/' + folder.to_s}"
end.count{ |x| x != 0 } == 0
if successful
say "Successfully modified folder permissions."
else
say "Folder permissions not set up. Run `pave setup:permissions` to set them."
end
end
|
130
131
132
|
# File 'lib/pave/concrete.rb', line 130
def
sh "rmdir #{name}/" + removed_folders.join(" #{name}/")
end
|
#removed_folders ⇒ Object
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/pave/concrete.rb', line 134
def removed_folders
[
:tools,
:libraries,
:models,
:css,
:controllers,
:helpers,
:js,
:languages,
:mail,
]
end
|
#set_up_folders ⇒ Object
43
44
45
46
47
|
# File 'lib/pave/concrete.rb', line 43
def set_up_folders
say "* Setting up folders..."
modify_folder_permissions
end
|
#set_up_git ⇒ Object
49
50
51
52
53
54
55
56
|
# File 'lib/pave/concrete.rb', line 49
def set_up_git
say "* Setting up git..."
sh "touch #{name}/.gitignore"
gitignored.each{ |ignored| sh "echo '#{ignored}' >> #{name}/.gitignore" }
gitkept_folders.each{ |folder| sh "touch #{name}/#{folder}/.keep" }
sh "touch #{name}/files/.keep"
sh "touch #{name}/updates/.keep"
end
|
#set_up_pave ⇒ Object
28
29
30
|
# File 'lib/pave/concrete.rb', line 28
def set_up_pave
sh "mkdir ~/.pave" unless File.exists?(File.join(Dir.home, ".pave/"))
end
|
#setup ⇒ Object
18
19
20
21
22
23
24
25
26
|
# File 'lib/pave/concrete.rb', line 18
def setup
set_up_pave
clone_concrete5
set_up_folders
add_config_customizations
set_up_git
create_virtual_host
self
end
|
#world_writable_folders ⇒ Object
114
115
116
|
# File 'lib/pave/concrete.rb', line 114
def world_writable_folders
%w{ blocks config packages files }
end
|