weeblybundler 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -3
- data/lib/weeblybundler/cli.rb +66 -39
- data/lib/weeblybundler/version.rb +1 -1
- data/weeblybundler.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b054e4bc180a95f2f1a545d846b53ad6284488d1
|
4
|
+
data.tar.gz: a880832a9f91f4e072d637b0ca1972fd906b78a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f1be9ccf3f18d4b4351f3eb89573dbeb5cf5fb4e966619bbd6821b1e507d37907a37b3ad78f097e84e4da948bbf533f22f811381fa6ac3209130a42d43da94c
|
7
|
+
data.tar.gz: dd136907a20aa3366b9f87618ba6c83147598b66898c492bd6afb10073b94b88f8f921731f240e62ed183a59a20cb33277a24fdce5a3477fbb8e8a9927e1b3f6
|
data/README.md
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
WeeblyBundler is a CLI tool created to enable Weebly Platform Developers to rapidly deploy their apps and upload their themes.
|
4
4
|
|
5
|
-
##
|
5
|
+
## Installing via rubygems (Recommended)
|
6
6
|
|
7
|
-
|
7
|
+
`gem install weeblybundler`
|
8
|
+
|
9
|
+
## Installing via Source
|
8
10
|
|
9
11
|
Download the source code
|
10
12
|
|
@@ -30,7 +32,7 @@ Good to go!
|
|
30
32
|
|
31
33
|
### Uploading Apps
|
32
34
|
|
33
|
-
Before uploading apps, you must first set your client id and client secret as environment variables. You can find these values on your app's page in the developer-admin.
|
35
|
+
Before uploading apps, you must first set your client id and client secret as environment variables. You can find these values on your app's page in the developer-admin.
|
34
36
|
|
35
37
|
`export WEEBLY_CLIENT_ID=client_id && export WEEBLY_SECRET=secret`
|
36
38
|
|
@@ -38,6 +40,12 @@ Now you can use the app command to sync your local changes to your app.
|
|
38
40
|
|
39
41
|
`weeblybundle app /Path/To/Element/Directory`
|
40
42
|
|
43
|
+
To make things even easier, you can use the `--watch` flag to watch your app directory for changes. Whenever a file is added, updated, or deleted from your app directory, the changes will be automatically synced.
|
44
|
+
|
45
|
+
`weeblybundle app /Path/To/Element/Directory --watch`
|
46
|
+
|
47
|
+
Every time you sync your changes, the current version of your app will be updated. If you decide to change the app's version before syncing your changes, a new app version will appear in developer-admin, in addition to your old app version.
|
48
|
+
|
41
49
|
Once you have installed your app to a site from the developer-admin, you can sync your app using weeblybundle and view your changes in the editor by refreshing the page.
|
42
50
|
|
43
51
|
### Uploading Themes
|
@@ -50,6 +58,10 @@ Then upload the theme by using:
|
|
50
58
|
|
51
59
|
`weeblybundle theme /Path/To/Theme`
|
52
60
|
|
61
|
+
Similar to apps, you can use the `--watch` flag to watch your theme directory for changes. Whenever a file is added, updated, or deleted from your theme directory, the changes will be automatically synced.
|
62
|
+
|
63
|
+
`weeblybundle theme /Path/To/Theme --watch`
|
64
|
+
|
53
65
|
You can then see your uploaded theme under Themes->Custom.
|
54
66
|
|
55
67
|
Happy Bundling!
|
data/lib/weeblybundler/cli.rb
CHANGED
@@ -2,57 +2,84 @@ require 'thor'
|
|
2
2
|
require 'weeblybundler/bundle'
|
3
3
|
require "awesome_print"
|
4
4
|
require "json"
|
5
|
+
require "filewatcher"
|
6
|
+
|
7
|
+
def watch( type, path, publish = false )
|
8
|
+
puts 'Watching for ' + type + ' changes...'
|
9
|
+
FileWatcher.new(path, interval: 0.1).watch() do |filename|
|
10
|
+
if type === "app"
|
11
|
+
handleApp(path)
|
12
|
+
elsif type === 'theme'
|
13
|
+
handleTheme(path, publish)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def handleApp( path )
|
19
|
+
client_id = ENV['WEEBLY_CLIENT_ID']
|
20
|
+
secret = ENV['WEEBLY_SECRET']
|
21
|
+
domain = ENV['WEEBLY_DOMAIN'] || 'https://www.weebly.com'
|
22
|
+
|
23
|
+
bundle = Weeblybundler::Bundle.new('app', path, domain, {'client_id' => client_id, 'secret' => secret, 'domain' => domain})
|
24
|
+
|
25
|
+
if bundle.is_valid?
|
26
|
+
response = bundle.sync('/platform/app')
|
27
|
+
begin
|
28
|
+
ap JSON.parse(response.body)
|
29
|
+
rescue
|
30
|
+
ap "There was a problem uploading your element to #{domain}/platform/app"
|
31
|
+
ap response.body
|
32
|
+
bundle.cleanup
|
33
|
+
end
|
34
|
+
else
|
35
|
+
ap bundle.errors
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def handleTheme( path, publish = false )
|
40
|
+
domain = ENV['WEEBLY_DOMAIN'] || 'https://www.weebly.com'
|
41
|
+
site_id = ENV['WEEBLY_SITE_ID']
|
42
|
+
token = ENV['WEEBLY_TOKEN']
|
43
|
+
email = ENV['WEEBLY_EMAIL']
|
44
|
+
|
45
|
+
bundle = Weeblybundler::Bundle.new('theme', path, domain, {'domain' => domain, 'site_id' => site_id, 'token' => token, 'email' => email})
|
46
|
+
|
47
|
+
if bundle.is_valid?
|
48
|
+
response = bundle.sync('/platform/theme', publish)
|
49
|
+
begin
|
50
|
+
ap JSON.parse(response)
|
51
|
+
rescue
|
52
|
+
ap "There was a problem uploading your element to #{domain}/platform/theme"
|
53
|
+
ap response.body
|
54
|
+
bundle.cleanup
|
55
|
+
end
|
56
|
+
else
|
57
|
+
ap bundle.errors
|
58
|
+
end
|
59
|
+
end
|
5
60
|
|
6
61
|
module Weeblybundler
|
7
62
|
class CLI < Thor
|
63
|
+
|
8
64
|
desc "app PATH", "Bundles and uploads your weebly platform app."
|
65
|
+
option :watch, :type => :boolean
|
9
66
|
def app( path )
|
10
|
-
|
11
|
-
|
12
|
-
domain = ENV['WEEBLY_DOMAIN'] || 'https://www.weebly.com'
|
13
|
-
|
14
|
-
ap client_id
|
15
|
-
ap secret
|
16
|
-
ap domain
|
17
|
-
|
18
|
-
bundle = Bundle.new('app', path, domain, {'client_id' => client_id, 'secret' => secret, 'domain' => domain})
|
19
|
-
|
20
|
-
if bundle.is_valid?
|
21
|
-
response = bundle.sync('/platform/app')
|
22
|
-
begin
|
23
|
-
ap JSON.parse(response.body)
|
24
|
-
rescue
|
25
|
-
ap "There was a problem uploading your element to #{domain}/platform/app"
|
26
|
-
ap response.body
|
27
|
-
bundle.cleanup
|
28
|
-
end
|
29
|
-
else
|
30
|
-
ap bundle.errors
|
67
|
+
if options[:watch]
|
68
|
+
return watch("app", path, false)
|
31
69
|
end
|
70
|
+
|
71
|
+
handleApp(path)
|
32
72
|
end
|
33
73
|
|
34
74
|
desc "theme PATH", "Bundles and uploads your weebly platform theme."
|
35
75
|
option :publish, :type => :boolean
|
76
|
+
option :watch, :type => :boolean
|
36
77
|
def theme( path )
|
37
|
-
|
38
|
-
|
39
|
-
token = ENV['WEEBLY_TOKEN']
|
40
|
-
email = ENV['WEEBLY_EMAIL']
|
41
|
-
|
42
|
-
bundle = Bundle.new('theme', path, domain, {'domain' => domain, 'site_id' => site_id, 'token' => token, 'email' => email})
|
43
|
-
|
44
|
-
if bundle.is_valid?
|
45
|
-
response = bundle.sync('/platform/theme', options[:publish])
|
46
|
-
begin
|
47
|
-
ap JSON.parse(response)
|
48
|
-
rescue
|
49
|
-
ap "There was a problem uploading your element to #{domain}/platform/theme"
|
50
|
-
ap response.body
|
51
|
-
bundle.cleanup
|
52
|
-
end
|
53
|
-
else
|
54
|
-
ap bundle.errors
|
78
|
+
if options[:watch]
|
79
|
+
return watch("theme", path, options[:publish])
|
55
80
|
end
|
81
|
+
|
82
|
+
handleTheme(path, options[:publish])
|
56
83
|
end
|
57
84
|
end
|
58
85
|
end
|
data/weeblybundler.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency 'rest-client'
|
23
23
|
spec.add_dependency 'awesome_print'
|
24
24
|
spec.add_dependency 'jwt'
|
25
|
+
spec.add_dependency 'filewatcher'
|
25
26
|
|
26
27
|
spec.add_development_dependency "bundler", "~> 1.5"
|
27
28
|
spec.add_development_dependency "rake"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weeblybundler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Ashley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: filewatcher
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: bundler
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|