pave 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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:
|