zine 0.7.0 → 0.8.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/CHANGELOG.md +5 -0
- data/README.md +1 -0
- data/lib/zine.rb +40 -1
- data/lib/zine/cli.rb +7 -0
- data/lib/zine/upload.rb +0 -1
- data/lib/zine/uploader_sftp.rb +10 -6
- data/lib/zine/version.rb +1 -1
- data/lib/zine/watcher.rb +4 -0
- 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: db5b30774a28f16583540f93a394e24f5d34ae96
|
4
|
+
data.tar.gz: a2330b92a0df349f884af0dc46832f350440a50e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1c8600ac22c3e08796fb98f5d5804bee2467254240849a1015a8ead613cbef10d110a726d665ac44a9f14a25683bf94830e130afa2c9af835b0f67c395d3c9e
|
7
|
+
data.tar.gz: ab65b753769cca93a4fde746ac14c1bc347daadb055ec8bca7e34751c4e244437f1975d93a346dbd5472bf01ae13d616a710a0bb994e2fb48354c2fb21e6154d
|
data/CHANGELOG.md
CHANGED
@@ -107,3 +107,8 @@
|
|
107
107
|
|
108
108
|
- caught an SFTP upload error where SFTP credentials aren't in the keychain
|
109
109
|
- updated bundler
|
110
|
+
|
111
|
+
## 0.8.0, October 2, 2017
|
112
|
+
|
113
|
+
- SFTP upload error wasn't caught in 0.7.0... TODO
|
114
|
+
- added a notice command, zine notice [FILE], which adds that file to the build queue without having to force a general build, so zine can be called in scripts to upload particular files (a rake script in Ripley, specifically)
|
data/README.md
CHANGED
@@ -66,6 +66,7 @@ Commands:
|
|
66
66
|
zine build # Build the site
|
67
67
|
zine force # Build the site, forcing writes & uploads
|
68
68
|
zine help [COMMAND] # Describe available commands or one specific command
|
69
|
+
zine notice POST # Build the site, then force the one POST
|
69
70
|
zine nuke # Delete the build folder
|
70
71
|
zine post TITLE # Create the file for a new blog post, titled TITLE
|
71
72
|
zine site # Create the skeleton of a new site (overwriting files)
|
data/lib/zine.rb
CHANGED
@@ -69,6 +69,45 @@ module Zine
|
|
69
69
|
)
|
70
70
|
end
|
71
71
|
|
72
|
+
# currently used to say yes on a script's behalf - in #notice
|
73
|
+
class MockHighlineYes
|
74
|
+
def ask(_question)
|
75
|
+
'Y'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Build the site, noticing this file as having changed
|
80
|
+
# Called by CLI#notice
|
81
|
+
def notice(file)
|
82
|
+
# build
|
83
|
+
init_templates
|
84
|
+
FileUtils.mkdir_p @options['directories']['build']
|
85
|
+
# posts_and_headlines_without_writing
|
86
|
+
posts = Zine::PostsAndHeadlines.new self, @options # starts watcher
|
87
|
+
posts_and_guard = posts.writeless
|
88
|
+
guard = posts_and_guard[:guard]
|
89
|
+
|
90
|
+
# give the file watchers something to notice
|
91
|
+
file_to_notice = File.join Dir.getwd,
|
92
|
+
@options['directories']['posts'],
|
93
|
+
file
|
94
|
+
posts.one_new_post file_to_notice
|
95
|
+
sleep 0.25
|
96
|
+
posts.one_new_post file_to_notice # overcome latency in the watcher...
|
97
|
+
|
98
|
+
# TODO: everywhere
|
99
|
+
guard.listener_array.each(&:stop)
|
100
|
+
|
101
|
+
# preview posts_and_guard -- no preview needed...
|
102
|
+
return if @options['upload']['method'] == 'none' ||
|
103
|
+
(guard.delete_array.empty? && guard.upload_array.empty?)
|
104
|
+
uploader = Zine::Upload.new @options['directories']['build'],
|
105
|
+
@options['upload'],
|
106
|
+
guard.delete_array,
|
107
|
+
guard.upload_array
|
108
|
+
uploader.upload_decision MockHighlineYes
|
109
|
+
end
|
110
|
+
|
72
111
|
def write_markdown(default_name, src_dir, file)
|
73
112
|
dir = Pathname(File.dirname(file)).relative_path_from(Pathname(src_dir))
|
74
113
|
file_name = "#{File.basename(file, '.*')}.html"
|
@@ -83,7 +122,7 @@ module Zine
|
|
83
122
|
|
84
123
|
def clean_option_paths
|
85
124
|
directories = @options['directories']
|
86
|
-
%w
|
125
|
+
%w[assets posts styles templates].each do |dir|
|
87
126
|
directories[dir] = File.join directories['source'], directories[dir]
|
88
127
|
end
|
89
128
|
directories['blog'] = File.join directories['build'], directories['blog']
|
data/lib/zine/cli.rb
CHANGED
@@ -37,6 +37,13 @@ module Zine
|
|
37
37
|
puts Rainbow('Site built').green
|
38
38
|
end
|
39
39
|
|
40
|
+
desc 'notice POST', 'Build the site, then force the one POST'
|
41
|
+
def notice(file)
|
42
|
+
init_site
|
43
|
+
@the_site.notice(file)
|
44
|
+
puts Rainbow('Site built').green
|
45
|
+
end
|
46
|
+
|
40
47
|
desc 'nuke', 'Delete the build folder'
|
41
48
|
def nuke
|
42
49
|
init_site
|
data/lib/zine/upload.rb
CHANGED
data/lib/zine/uploader_sftp.rb
CHANGED
@@ -25,9 +25,9 @@ module Zine
|
|
25
25
|
delete
|
26
26
|
deploy
|
27
27
|
rescue Errno::ENETUNREACH
|
28
|
-
puts Rainbow("Unable to connect to #{
|
28
|
+
puts Rainbow("Unable to connect to #{@host}").red
|
29
29
|
rescue Net::SSH::AuthenticationFailed, NameError
|
30
|
-
puts Rainbow("Authentication failed for #{
|
30
|
+
puts Rainbow("Authentication failed for #{@host}").red
|
31
31
|
puts 'Check your credential file, and maybe run ssh-add?'
|
32
32
|
end
|
33
33
|
|
@@ -40,8 +40,10 @@ module Zine
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def delete
|
43
|
-
Net::SFTP.start(@host,
|
44
|
-
|
43
|
+
Net::SFTP.start(@host,
|
44
|
+
@credentials['username'],
|
45
|
+
password: @credentials['password'],
|
46
|
+
auth_methods: %w[publickey password]) do |sftp|
|
45
47
|
@delete_file_array.each do |rel_file_path|
|
46
48
|
sftp.remove(File.join(@path, rel_file_path)).wait
|
47
49
|
puts "Deleted #{rel_file_path}" if @verbose
|
@@ -50,8 +52,10 @@ module Zine
|
|
50
52
|
end
|
51
53
|
|
52
54
|
def deploy
|
53
|
-
Net::SFTP.start(@host,
|
54
|
-
|
55
|
+
Net::SFTP.start(@host,
|
56
|
+
@credentials['username'],
|
57
|
+
password: @credentials['password'],
|
58
|
+
auth_methods: %w[publickey password]) do |sftp|
|
55
59
|
deploy_directories sftp
|
56
60
|
deploy_files sftp
|
57
61
|
end
|
data/lib/zine/version.rb
CHANGED
data/lib/zine/watcher.rb
CHANGED
@@ -5,6 +5,7 @@ module Zine
|
|
5
5
|
# Watch files for changes
|
6
6
|
class Watcher
|
7
7
|
attr_reader :upload_array, :delete_array
|
8
|
+
attr_accessor :listener_array
|
8
9
|
|
9
10
|
def initialize(posts_and_headlines, build_directory, source_directory)
|
10
11
|
@posts_and_headlines = posts_and_headlines
|
@@ -12,6 +13,7 @@ module Zine
|
|
12
13
|
@source_directory = File.join Dir.pwd, source_directory
|
13
14
|
@upload_array = []
|
14
15
|
@delete_array = []
|
16
|
+
@listener_array = []
|
15
17
|
end
|
16
18
|
|
17
19
|
# Build a delete list & an upload list for SSH from changes in build,
|
@@ -74,6 +76,7 @@ module Zine
|
|
74
76
|
on_build_delete removed unless removed.empty?
|
75
77
|
end
|
76
78
|
listener.start
|
79
|
+
@listener_array << listener
|
77
80
|
end
|
78
81
|
|
79
82
|
def watch_source_dir
|
@@ -83,6 +86,7 @@ module Zine
|
|
83
86
|
on_source_delete removed unless removed.empty?
|
84
87
|
end
|
85
88
|
listener.start
|
89
|
+
@listener_array << listener
|
86
90
|
end
|
87
91
|
end
|
88
92
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Kreuzer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|