charmkit 1.0.1 → 1.0.2
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/README.md +61 -44
- data/charmkit.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3519af554753017d8e7c77959346ac4f940c8428
|
4
|
+
data.tar.gz: e341f3c8fe1a68e968fc413abb1f0f349ef6fa38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b42e25af103f7f53002fd5027ee149a93f7741f5d84996def178085f4a3e82b1286d8a441429d49bfc2b167c7b92b59e06306ac2f2f4fcc8de7ba4ebc21914f
|
7
|
+
data.tar.gz: a2a68033f643ac43a05b425cbf3dcdf69125b127bf9bbf78ee81500e0af14d1c79825531e9709b4124509240d2d37ccfa59cb7df010cae14599c28e5180deee6
|
data/README.md
CHANGED
@@ -25,21 +25,20 @@ In **hooks/install**:
|
|
25
25
|
#!/bin/sh
|
26
26
|
|
27
27
|
apt-get update
|
28
|
-
apt-get install -qyf ruby --no-install-recommends
|
28
|
+
apt-get install -qyf ruby bundler --no-install-recommends
|
29
29
|
gem install bundler
|
30
30
|
|
31
|
-
bundle install --local --quiet
|
31
|
+
bundle install --local --quiet --without development
|
32
32
|
|
33
|
-
|
34
|
-
bundle exec charmkit hook install
|
33
|
+
bundle exec rake dokuwiki:install
|
35
34
|
```
|
36
35
|
|
37
|
-
In other hooks call
|
36
|
+
In other hooks call relevant rake tasks (eg. **hooks/config-changed**)
|
38
37
|
|
39
38
|
```
|
40
39
|
#!/bin/sh
|
41
40
|
|
42
|
-
bundle exec
|
41
|
+
bundle exec rake dokuwiki:config_changed
|
43
42
|
```
|
44
43
|
|
45
44
|
Same for **hooks/upgrade-charm**
|
@@ -47,78 +46,96 @@ Same for **hooks/upgrade-charm**
|
|
47
46
|
```
|
48
47
|
#!/bin/sh
|
49
48
|
|
50
|
-
bundle exec
|
49
|
+
bundle exec rake dokuwiki:upgrace_charm
|
51
50
|
```
|
52
51
|
|
53
52
|
## Writing Charmkit style hooks
|
54
53
|
|
55
|
-
All Charmkit hooks
|
56
|
-
files must match the name of the hook you want to assicate to and must end with
|
57
|
-
a **.rb** extension.
|
58
|
-
|
59
|
-
For example, if my hook runs `bundle exec charmkit hook config-changed` then in my
|
60
|
-
**lib/** directory should exist a file named **lib/config-changed.rb**.
|
61
|
-
|
62
|
-
To start, you'll want to inherit from the **Charmkit** class. The class name should also
|
63
|
-
reflect the name of the hook being executed and should be in a standard Ruby camelcase style.
|
64
|
-
|
65
|
-
See the syntax below for a the **config-changed** hook being run:
|
54
|
+
All Charmkit hooks will reside in a normal **Rakefile**.
|
66
55
|
|
67
56
|
### Syntax
|
68
57
|
|
69
58
|
```ruby
|
70
|
-
|
71
|
-
use :nginx
|
59
|
+
require 'charmkit'
|
72
60
|
|
73
|
-
|
74
|
-
package [
|
75
|
-
'php-fpm', 'php-cgi', 'php-curl', 'php-gd', 'php-json',
|
76
|
-
'php-mcrypt', 'php-readline', 'php-mbstring', 'php-xml'
|
77
|
-
], :update_cache
|
61
|
+
namespace :dokuwiki do
|
78
62
|
|
63
|
+
desc "Install Dokuwiki"
|
64
|
+
task :install do
|
65
|
+
use :nginx
|
66
|
+
use :php
|
67
|
+
|
68
|
+
deps.install
|
69
|
+
|
70
|
+
app_path = config 'app_path'
|
71
|
+
resource_path = resource 'stable-release'
|
79
72
|
hook_path = ENV['JUJU_CHARM_DIR']
|
80
|
-
app_path = path(config('app_path'))
|
81
73
|
|
82
|
-
|
74
|
+
mkdir_p app_path
|
75
|
+
|
76
|
+
run "tar", "xf", resource_path, "-C", app_path, "--strip-components=1"
|
83
77
|
|
84
|
-
|
85
|
-
|
78
|
+
cp "#{hook_path}/templates/acl.auth.php", "#{app_path}/conf/acl.auth.php"
|
79
|
+
cp "#{hook_path}/templates/local.php", "#{app_path}/conf/local.php"
|
80
|
+
cp "#{hook_path}/templates/plugins.local.php", "#{app_path}/conf/plugin.local.php"
|
86
81
|
|
87
|
-
|
88
|
-
|
82
|
+
version = File.read "#{app_path}/VERSION"
|
83
|
+
run "application-version-set", version.chomp
|
84
|
+
status :active, "Dokuwiki installed, please set your admin user and password with juju config dokuwiki admin_user=<an_admin_name> admin_password=<sha512 password>"
|
89
85
|
end
|
90
86
|
|
91
|
-
|
92
|
-
|
87
|
+
desc "Configure Dokuwiki"
|
88
|
+
task :config_changed do
|
89
|
+
app_path = config 'app_path'
|
90
|
+
hook_path = ENV['JUJU_CHARM_DIR']
|
91
|
+
|
92
|
+
admin_user = config 'admin_user'
|
93
|
+
admin_password = config 'admin_password'
|
94
|
+
admin_name = config 'admin_name'
|
95
|
+
admin_email = config 'admin_email'
|
96
|
+
template "#{hook_path}/templates/users.auth.php",
|
97
|
+
"#{app_path}/conf/users.auth.php",
|
98
|
+
admin_user: admin_user,
|
99
|
+
admin_password: admin_password,
|
100
|
+
admin_name: admin_name,
|
101
|
+
admin_email: admin_email
|
102
|
+
|
103
|
+
public_address = unit 'public-address'
|
104
|
+
template "#{hook_path}/templates/vhost.conf",
|
105
|
+
"/etc/nginx/sites-enabled/default",
|
106
|
+
public_address: public_address,
|
107
|
+
app_path: app_path
|
108
|
+
|
109
|
+
chown_R 'www-data', 'www-data', app_path
|
110
|
+
|
111
|
+
run "systemctl restart php7.0-fpm"
|
112
|
+
run "systemctl restart nginx"
|
113
|
+
run "open-port 80"
|
114
|
+
status :active, "Dokuwiki updated and is now ready."
|
93
115
|
end
|
94
116
|
end
|
117
|
+
|
118
|
+
task :default => 'dokuwiki:install'
|
95
119
|
```
|
96
120
|
|
97
|
-
The core of Charmkit
|
98
|
-
scrolls (read
|
99
|
-
plugins). [Visit Charmkit Scrolls](https://github.com/charmkit/charmkit-scrolls)
|
100
|
-
for more information.
|
121
|
+
The core of Charmkit contains a few helpers such as template rendering but otherwise kept relatively small.
|
101
122
|
|
102
123
|
|
103
124
|
## Packaging the Charm
|
104
125
|
|
105
126
|
```
|
106
|
-
$ bundle
|
127
|
+
$ bundle package
|
107
128
|
```
|
108
129
|
|
109
130
|
This will package and cache all required gems, along with making sure the necessary
|
110
|
-
scrolls are included.
|
111
|
-
|
112
|
-
```
|
113
|
-
$ juju deploy dist/.
|
114
|
-
```
|
131
|
+
scrolls are included.
|
115
132
|
|
116
133
|
## Uploading to charm store
|
117
134
|
|
118
135
|
Once the charm is built simply run:
|
119
136
|
|
120
137
|
```
|
121
|
-
$ charm push
|
138
|
+
$ charm push .
|
122
139
|
```
|
123
140
|
|
124
141
|
## Development
|
data/charmkit.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: charmkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Stokes
|
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
version: '0'
|
209
209
|
requirements: []
|
210
210
|
rubyforge_project:
|
211
|
-
rubygems_version: 2.
|
211
|
+
rubygems_version: 2.5.1
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
214
|
summary: Helps with charm authoring
|