pave 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +55 -18
- data/bin/pave +26 -7
- data/lib/pave/concrete.rb +17 -10
- data/lib/pave/database.rb +10 -2
- data/lib/pave/deploy.rb +2 -2
- data/lib/pave/theme.rb +62 -0
- data/lib/pave/version.rb +1 -1
- data/lib/pave.rb +7 -0
- data/templates/themes/blank/css/styles.scss +2 -0
- data/templates/themes/blank/default.php +12 -0
- data/templates/themes/blank/description.txt +2 -0
- data/templates/themes/blank/elements/footer.php +13 -0
- data/templates/themes/blank/elements/header.php +36 -0
- data/templates/themes/blank/includes/view_helpers.php +14 -0
- data/templates/themes/blank/js/scripts.js +7 -0
- data/templates/themes/blank/thumbnail.png +0 -0
- data/templates/themes/blank/view.php +8 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73f1328426b5077aeaa1d8f9a7056cb0d23f4966
|
4
|
+
data.tar.gz: 6d44d7901e194239707394d3c46739a71c358869
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4cd5bb23917e1b6d991a298409cefbb36e0c649ddb8e9d3bbd50e384e7d0df7e5d7f043b2be73f58d412a213076eb90fef38c8afee1369efe9dff248074272a
|
7
|
+
data.tar.gz: dce87fdfcb7ef23f116001cde04e2fcb1b134856432dec4462555e7367bfb1120de4a5bb1f270d4dfa2c69c93391dd8060e332ad6b258e4c3ef0ac04fed69406
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,52 +1,89 @@
|
|
1
1
|
# pave - Command line tools for Concrete5 websites
|
2
2
|
|
3
|
-
|
3
|
+
Authors: Jamon Holmgren (@jamonholmgren), Ryan Linton (@ryanlntn)
|
4
4
|
|
5
|
-
Provides a set of command line tools for Concrete5.
|
5
|
+
Provides a set of command line tools for setting up and developing [Concrete5](http://www.concrete5.org/) websites.
|
6
6
|
|
7
|
-
|
7
|
+
*Requirements:* Designed for Ruby 2.0+ running on OS X Mavericks.
|
8
|
+
|
9
|
+
# Installation
|
8
10
|
|
9
11
|
$ gem install pave
|
10
12
|
|
11
|
-
|
13
|
+
# Usage
|
12
14
|
|
13
|
-
|
15
|
+
## Create a new Concrete5 website
|
14
16
|
|
15
17
|
$ pave new mywebsite
|
16
18
|
|
17
19
|
This:
|
18
20
|
|
19
|
-
1. Downloads Concrete 5.6.2.1
|
21
|
+
1. Downloads Concrete 5.6.2.1 (once) into `~/.pave`
|
20
22
|
2. Unzips it into `mywebsite`
|
21
|
-
3. Removes extra folders
|
22
|
-
4.
|
23
|
-
5.
|
23
|
+
3. Removes extra folders and sets up folder permissions
|
24
|
+
4. Adds a `.gitignore` and `.keep`s
|
25
|
+
5. Attempts to create a virtual host `mywebsite.site`
|
24
26
|
|
25
|
-
|
27
|
+
## Deployments
|
26
28
|
|
27
29
|
$ pave deploy:setup
|
28
30
|
|
29
|
-
This sets up a deployment script to the remote server and deploys an initial version.
|
31
|
+
This sets up a Git-based deployment script to the remote server and deploys an initial version. SSH access is required.
|
30
32
|
|
31
33
|
$ pave deploy
|
32
34
|
|
33
35
|
Deploys the site using git.
|
34
36
|
|
35
|
-
|
37
|
+
## Database
|
38
|
+
|
39
|
+
$ pave db:create mydatabase
|
36
40
|
|
37
|
-
|
41
|
+
Creates a local MySQL database called `mydatabase`
|
38
42
|
|
39
|
-
$ pave db:create
|
40
43
|
$ pave db:push
|
44
|
+
|
45
|
+
*TODO:* Copies the local Concrete5 database to the remote database. Useful for deploying to staging sites.
|
46
|
+
|
41
47
|
$ pave db:pull
|
42
|
-
$ pave db:backup
|
43
48
|
|
44
|
-
|
49
|
+
*TODO:* Copies the remote Concrete5 database into the local database. Useful for obtaining production data for testing.
|
50
|
+
|
51
|
+
$ pave db:dump
|
52
|
+
|
53
|
+
Creates a database dump file and places it in `.db/YYYY-MM-DD-database.sql.gz`.
|
54
|
+
|
55
|
+
## Virtual host setup
|
56
|
+
|
57
|
+
$ pave vh:create myhost.site
|
58
|
+
|
59
|
+
Sets up an Apache virtual host in the current directory on `myhost.site`.
|
60
|
+
|
61
|
+
$ pave vh:remove myhost.site
|
62
|
+
|
63
|
+
Removes myhost.site virtual host.
|
64
|
+
|
65
|
+
$ pave vh:backup
|
66
|
+
|
67
|
+
Backs up your hosts file and vhost file.
|
68
|
+
|
69
|
+
$ pave vh:restore
|
70
|
+
|
71
|
+
Restores your previously backed up virtual host file.
|
72
|
+
|
73
|
+
$ pave vh:restart
|
74
|
+
|
75
|
+
Restarts Apache.
|
76
|
+
|
77
|
+
## Help
|
78
|
+
|
79
|
+
$ pave help
|
45
80
|
|
46
|
-
$ pave --help
|
47
|
-
|
48
81
|
Outputs common tasks that pave can do.
|
49
82
|
|
83
|
+
## Updating
|
84
|
+
|
85
|
+
$ pave update
|
86
|
+
|
50
87
|
## Contributing
|
51
88
|
|
52
89
|
0. Create an issue explaining what you'd like to do and get feedback
|
data/bin/pave
CHANGED
@@ -130,20 +130,39 @@ command :"db:dump" do |c|
|
|
130
130
|
Pave::Database.new(name).dump
|
131
131
|
end
|
132
132
|
end
|
133
|
+
alias_command :"db:backup", :"db:dump"
|
133
134
|
|
134
|
-
command :"db:
|
135
|
-
c.syntax = "pave db:
|
135
|
+
command :"db:pull" do |c|
|
136
|
+
c.syntax = "pave db:pull"
|
136
137
|
c.description = "Download the project's live database and replace local database."
|
137
138
|
c.action do |args|
|
138
|
-
say "`db:
|
139
|
+
say "`db:pull` command not implemented yet."
|
139
140
|
end
|
140
141
|
end
|
141
142
|
|
142
|
-
command :"db:
|
143
|
-
c.syntax = "pave db:
|
143
|
+
command :"db:push" do |c|
|
144
|
+
c.syntax = "pave db:push"
|
144
145
|
c.description = "Upload the project's local database and replace the live database."
|
145
146
|
c.action do |args|
|
146
|
-
say "`db:
|
147
|
+
say "`db:push` command not implemented yet."
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
command :"generate:theme" do |c|
|
152
|
+
c.syntax = "pave generate:theme THEME_NAME"
|
153
|
+
c.description = "Set up a blank theme with sass."
|
154
|
+
c.action do |args|
|
155
|
+
name = args.first || "#{File.basename(Dir.pwd)}"
|
156
|
+
Pave::Theme.create(name)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
alias_command :"g:theme", :"generate:theme"
|
160
|
+
|
161
|
+
command :watch do |c|
|
162
|
+
c.syntax = "pave watch"
|
163
|
+
c.description = "Watch for sass changes."
|
164
|
+
c.action do |args|
|
165
|
+
Pave::Theme.watch
|
147
166
|
end
|
148
167
|
end
|
149
168
|
|
@@ -151,7 +170,7 @@ command :"deploy" do |c|
|
|
151
170
|
c.syntax = "pave deploy"
|
152
171
|
c.description = "Deploy project to web server."
|
153
172
|
c.action do |args|
|
154
|
-
remote = args[0] || "
|
173
|
+
remote = args[0] || "live"
|
155
174
|
branch = args[1] || "master"
|
156
175
|
Pave::Deploy.new.deploy(remote, branch)
|
157
176
|
end
|
data/lib/pave/concrete.rb
CHANGED
@@ -16,6 +16,7 @@ module Pave
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def setup
|
19
|
+
set_up_pave
|
19
20
|
clone_concrete5
|
20
21
|
set_up_folders
|
21
22
|
set_up_git
|
@@ -23,15 +24,19 @@ module Pave
|
|
23
24
|
self
|
24
25
|
end
|
25
26
|
|
27
|
+
def set_up_pave
|
28
|
+
sh "mkdir ~/.pave" unless File.exists?(File.join(Dir.home, ".pave/"))
|
29
|
+
end
|
30
|
+
|
26
31
|
def clone_concrete5
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
c5 = "concrete5.6.2.1"
|
33
|
+
c5_link = "http://www.concrete5.org/download_file/-/view/58379/8497"
|
34
|
+
unless File.exists?(File.join(Dir.home, ".pave/#{c5}.zip"))
|
35
|
+
say "* Downloading #{c5}..."
|
36
|
+
sh "curl #{c5_link} > ~/.pave/#{c5}.zip"
|
37
|
+
end
|
38
|
+
say "* Copying Concrete5 into #{name}..."
|
39
|
+
sh "unzip -qq ~/.pave/#{c5}.zip && mv #{c5} #{name}"
|
35
40
|
end
|
36
41
|
|
37
42
|
def set_up_folders
|
@@ -56,7 +61,9 @@ module Pave
|
|
56
61
|
"files/incoming/*",
|
57
62
|
"files/thumbnails/*",
|
58
63
|
"files/tmp/*",
|
59
|
-
"files/trash/*"
|
64
|
+
"files/trash/*",
|
65
|
+
".sass-cache",
|
66
|
+
"stylesheets"
|
60
67
|
]
|
61
68
|
end
|
62
69
|
|
@@ -88,7 +95,7 @@ module Pave
|
|
88
95
|
end
|
89
96
|
|
90
97
|
def world_writable_folders
|
91
|
-
%w{ config packages files }
|
98
|
+
%w{ blocks config packages files }
|
92
99
|
end
|
93
100
|
|
94
101
|
def gitkeep_folders
|
data/lib/pave/database.rb
CHANGED
@@ -20,8 +20,16 @@ module Pave
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def dump
|
23
|
-
|
24
|
-
|
23
|
+
if !File.directory?('db')
|
24
|
+
sh "mkdir ./db"
|
25
|
+
sh "echo '<?= die(); ?>' > ./db/index.php"
|
26
|
+
sh "echo 'deny from all' > ./db/.htaccess"
|
27
|
+
sh "sudo chmod -R 700 ./db/"
|
28
|
+
end
|
29
|
+
dbname = Time.now.strftime("%Y-%m-%d-%H%M") + "-" + name + ".sql.gz"
|
30
|
+
say "Creating dump of #{name} at #{Dir.pwd}/db/#{dbname}"
|
31
|
+
sh "mysqldump -uroot #{name} | gzip > ./db/#{dbname}"
|
32
|
+
say "Dump complete."
|
25
33
|
end
|
26
34
|
|
27
35
|
def download(host, user, password)
|
data/lib/pave/deploy.rb
CHANGED
@@ -5,7 +5,7 @@ module Pave
|
|
5
5
|
def setup
|
6
6
|
server = ask "Username and hostname of the remote server (e.g. user@server.com): "
|
7
7
|
folder = ask "Name of the remote directory (e.g. ~/webapps/appname/): "
|
8
|
-
remote = ask "Desired git remote name (e.g.
|
8
|
+
remote = ask "Desired git remote name (e.g. live): "
|
9
9
|
script = File.join(File.expand_path("../..", File.dirname(__FILE__)), "resources/deploy.sh")
|
10
10
|
|
11
11
|
puts "Piping shell script to #{server} for setup."
|
@@ -17,7 +17,7 @@ module Pave
|
|
17
17
|
puts "Finished! You may now run `pave deploy` to deploy your application."
|
18
18
|
end
|
19
19
|
|
20
|
-
def deploy(remote="
|
20
|
+
def deploy(remote="live", branch="master")
|
21
21
|
sh "git push #{remote} #{branch}"
|
22
22
|
end
|
23
23
|
end
|
data/lib/pave/theme.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
require "pave/shell"
|
2
|
+
|
3
|
+
module Pave
|
4
|
+
class Theme
|
5
|
+
include Pave::Shell
|
6
|
+
|
7
|
+
attr_reader :name
|
8
|
+
|
9
|
+
def self.create(name)
|
10
|
+
new(name).setup
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.watch
|
14
|
+
`sass --watch ./themes/ --style compressed`
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(name)
|
18
|
+
@name = name
|
19
|
+
end
|
20
|
+
|
21
|
+
def install_sass
|
22
|
+
say "Installing SASS..."
|
23
|
+
sh "gem install sass"
|
24
|
+
end
|
25
|
+
|
26
|
+
def install_bourbon
|
27
|
+
say "Installing Bourbon..."
|
28
|
+
sh "gem install bourbon"
|
29
|
+
sh "cd themes/#{self.name}/css/ && bourbon install && cd -"
|
30
|
+
end
|
31
|
+
|
32
|
+
def install_neat
|
33
|
+
say "Installing Neat..."
|
34
|
+
sh "gem install neat"
|
35
|
+
sh "cd themes/#{self.name}/css/ && neat install && cd -"
|
36
|
+
end
|
37
|
+
|
38
|
+
def install_bitters
|
39
|
+
say "Installing Bitters"
|
40
|
+
sh "gem install bitters"
|
41
|
+
sh "cd themes/#{self.name}/css/ && bitters install && cd -"
|
42
|
+
end
|
43
|
+
|
44
|
+
def copy_theme
|
45
|
+
sh "cp -a #{Pave.template_folder}/themes/blank #{Dir.pwd}/themes/#{self.name}"
|
46
|
+
end
|
47
|
+
|
48
|
+
def setup
|
49
|
+
say "Creating theme..."
|
50
|
+
copy_theme
|
51
|
+
install_sass
|
52
|
+
install_bourbon
|
53
|
+
install_neat
|
54
|
+
install_bitters
|
55
|
+
say "Docs for Neat: http://neat.bourbon.io/"
|
56
|
+
say "Docs for Bitters: https://github.com/thoughtbot/bitters"
|
57
|
+
say ""
|
58
|
+
say "Theme installed. Run `pave watch` to generate css from your sass files."
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
data/lib/pave/version.rb
CHANGED
data/lib/pave.rb
CHANGED
@@ -4,6 +4,7 @@ require "pave/shell"
|
|
4
4
|
require "pave/concrete"
|
5
5
|
require "pave/database"
|
6
6
|
require "pave/virtual_host"
|
7
|
+
require "pave/theme"
|
7
8
|
require "pave/deploy"
|
8
9
|
|
9
10
|
module Pave
|
@@ -13,4 +14,10 @@ module Pave
|
|
13
14
|
($? == 0) ? (say "Updated") : (say "Update failed. Run `gem update pave` manually.")
|
14
15
|
end
|
15
16
|
module_function :update
|
17
|
+
|
18
|
+
def template_folder
|
19
|
+
script = File.join(File.expand_path("../", File.dirname(__FILE__)), "templates")
|
20
|
+
end
|
21
|
+
module_function :template_folder
|
22
|
+
|
16
23
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?php defined('C5_EXECUTE') or die("Access Denied."); ?>
|
2
|
+
|
3
|
+
|
4
|
+
<?php
|
5
|
+
$a = new GlobalArea('Footer - Meta');
|
6
|
+
$a->display($c);
|
7
|
+
?>
|
8
|
+
|
9
|
+
|
10
|
+
<?php Loader::element('footer_required'); ?>
|
11
|
+
<script src='<?= $this->getThemePath(); ?>/js/scripts.js'></script>
|
12
|
+
</body>
|
13
|
+
</html>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?php defined('C5_EXECUTE') or die("Access Denied.");
|
2
|
+
$this->inc('includes/view_helpers.php');
|
3
|
+
?>
|
4
|
+
<!DOCTYPE html>
|
5
|
+
<html lang="<?php echo LANGUAGE?>">
|
6
|
+
<head>
|
7
|
+
<?php Loader::element('header_required'); ?>
|
8
|
+
|
9
|
+
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/2.1.3/normalize.min.css" />
|
10
|
+
<link rel="stylesheet" href="<?= $this->getThemePath(); ?>/css/styles.css" />
|
11
|
+
|
12
|
+
<!--[if lt IE 9]>
|
13
|
+
<script src='//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.2/html5shiv.js'></script>
|
14
|
+
<![endif]-->
|
15
|
+
</head>
|
16
|
+
|
17
|
+
<body class="<?= $c->getCollectionTypeHandle(); ?>">
|
18
|
+
|
19
|
+
|
20
|
+
<!-- BLOCK EXAMPLE -->
|
21
|
+
<?php
|
22
|
+
$a = new Area('Header');
|
23
|
+
$a->display($c);
|
24
|
+
?>
|
25
|
+
|
26
|
+
|
27
|
+
<!-- NAV EXAMPLE -->
|
28
|
+
<?php
|
29
|
+
$nav = BlockType::getByHandle('autonav');
|
30
|
+
$nav->controller->orderBy = 'display_asc';
|
31
|
+
$nav->controller->displayPages = 'top';
|
32
|
+
$nav->controller->displaySubPages = 'all';
|
33
|
+
$nav->controller->displaySubPageLevels = 'custom';
|
34
|
+
$nav->controller->displaySubPageLevelsNum = 1;
|
35
|
+
$nav->render('templates/header_menu');
|
36
|
+
?>
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pave
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamon Holmgren
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-12-
|
12
|
+
date: 2013-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -103,10 +103,20 @@ files:
|
|
103
103
|
- lib/pave/database.rb
|
104
104
|
- lib/pave/deploy.rb
|
105
105
|
- lib/pave/shell.rb
|
106
|
+
- lib/pave/theme.rb
|
106
107
|
- lib/pave/version.rb
|
107
108
|
- lib/pave/virtual_host.rb
|
108
109
|
- pave.gemspec
|
109
110
|
- resources/deploy.sh
|
111
|
+
- templates/themes/blank/css/styles.scss
|
112
|
+
- templates/themes/blank/default.php
|
113
|
+
- templates/themes/blank/description.txt
|
114
|
+
- templates/themes/blank/elements/footer.php
|
115
|
+
- templates/themes/blank/elements/header.php
|
116
|
+
- templates/themes/blank/includes/view_helpers.php
|
117
|
+
- templates/themes/blank/js/scripts.js
|
118
|
+
- templates/themes/blank/thumbnail.png
|
119
|
+
- templates/themes/blank/view.php
|
110
120
|
- test/pave_test.rb
|
111
121
|
homepage: https://github.com/jamonholmgren/pave
|
112
122
|
licenses:
|