weeblybundler 0.1.0 → 0.1.1
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 +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
|