runecms 0.0.18 → 0.0.19
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/bin/r2 +217 -0
- data/lib/runecms/commands.rb +1 -1
- data/lib/runecms/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c2da895c12dcc57b8c0067a4057c114a58692cac2d060b3c7db9cfd314f0590
|
4
|
+
data.tar.gz: 680b37e7c13955b437807781547063cf15d11febe6306f84a34c77daeafd432a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9297774987910bf4b082a7f6d43b2b5bea78e904ab9391b4ef4466b520ee9e71d86ca4362e78ad47ede731ea14ed8894b14f3db72bf6c074021afa3d57d4ef0f
|
7
|
+
data.tar.gz: 1cfbbd802e8109597f193003250bdae995c66e23862f01775b0227a43f4e773a13724725120f95e17f8fa4b492e98f2a178d7c3536c1b983a28f1db64216f4c9
|
data/bin/r2
ADDED
@@ -0,0 +1,217 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH << "lib"
|
4
|
+
|
5
|
+
require 'runecms'
|
6
|
+
require_relative '../repl'
|
7
|
+
|
8
|
+
require 'rubytext'
|
9
|
+
|
10
|
+
class RcmsREPL < REPL
|
11
|
+
Intro = "RuneCMS v. #{RuneCMS::VERSION}"
|
12
|
+
Version = RuneCMS::VERSION
|
13
|
+
|
14
|
+
Commands["help"] = {}
|
15
|
+
Commands["h"] = {abbr: "h"}
|
16
|
+
|
17
|
+
Help = <<~EOS
|
18
|
+
{config } Initialize config.txt if necessary and edit with vi
|
19
|
+
{check } List stale files, but do nothing else
|
20
|
+
{generate} Find stale files under source/ and generate them under target/
|
21
|
+
{view } View the current state of target/ via browser (local files)
|
22
|
+
{publish } Publish target/ to the remote server
|
23
|
+
{update } Shortcut - Like a generate followed by a push
|
24
|
+
{browse } Browse the current state of the remote server
|
25
|
+
|
26
|
+
Run from a directory with a config.txt, a source/ dir, and a target/ dir.
|
27
|
+
|
28
|
+
Config file looks like:
|
29
|
+
{server: example.com}
|
30
|
+
{path: /some/arbitrary/path}
|
31
|
+
{user: myuser}
|
32
|
+
EOS
|
33
|
+
|
34
|
+
CONFIG = "config.txt"
|
35
|
+
|
36
|
+
def cmd_help
|
37
|
+
puts
|
38
|
+
Help.each_line do |line|
|
39
|
+
md = line.match(/(.*)\{(.*)\}(.*)/)
|
40
|
+
if md
|
41
|
+
md = md.to_a
|
42
|
+
print " " + md[1]
|
43
|
+
print fx(md[2], Blue, :bold)
|
44
|
+
puts md[3]
|
45
|
+
else
|
46
|
+
print " " + line
|
47
|
+
end
|
48
|
+
end
|
49
|
+
puts
|
50
|
+
end
|
51
|
+
|
52
|
+
def cmd_version
|
53
|
+
puts RuneCMS::VERSION
|
54
|
+
puts
|
55
|
+
end
|
56
|
+
|
57
|
+
def cmd_check
|
58
|
+
return unless check_current_site
|
59
|
+
stale = stale_files("source")
|
60
|
+
if stale.empty?
|
61
|
+
puts "\n No stale files\n "
|
62
|
+
else
|
63
|
+
puts "\n Stale files:"
|
64
|
+
stale.each {|x| puts fx(" " + x, Blue, :bold) }
|
65
|
+
puts
|
66
|
+
end
|
67
|
+
puts
|
68
|
+
end
|
69
|
+
|
70
|
+
def cmd_config
|
71
|
+
return unless check_current_site
|
72
|
+
unless read_config
|
73
|
+
File.open("config.txt", "w") do |f|
|
74
|
+
f.puts "server: "
|
75
|
+
f.puts "path: "
|
76
|
+
f.puts "user: "
|
77
|
+
end
|
78
|
+
end
|
79
|
+
system("vi config.txt")
|
80
|
+
puts
|
81
|
+
end
|
82
|
+
|
83
|
+
def cmd_generate
|
84
|
+
return unless check_current_site
|
85
|
+
verify_dirs # handle missing subdirectories
|
86
|
+
stale = stale_files("source")
|
87
|
+
if stale.empty?
|
88
|
+
puts "Nothing to do"
|
89
|
+
puts
|
90
|
+
return false
|
91
|
+
else
|
92
|
+
puts "Stale files:"
|
93
|
+
stale.each do |file|
|
94
|
+
puts " " + file
|
95
|
+
update_target(file)
|
96
|
+
end
|
97
|
+
puts
|
98
|
+
return true
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def cmd_update
|
103
|
+
return unless check_current_site
|
104
|
+
needed = run_generate
|
105
|
+
run_publish if needed
|
106
|
+
puts
|
107
|
+
end
|
108
|
+
|
109
|
+
def cmd_view
|
110
|
+
return unless check_current_site
|
111
|
+
# FIXME index is hardcoded...
|
112
|
+
system("open target/index.html")
|
113
|
+
end
|
114
|
+
|
115
|
+
def cmd_publish
|
116
|
+
return unless check_current_site
|
117
|
+
cmd = "rsync -r -z target/ #@user@#@server:#@path/"
|
118
|
+
# puts "Running: #{cmd}"
|
119
|
+
system(cmd)
|
120
|
+
end
|
121
|
+
|
122
|
+
def cmd_browse
|
123
|
+
return unless check_current_site
|
124
|
+
system("open https://#@server")
|
125
|
+
end
|
126
|
+
|
127
|
+
def command?(cmd)
|
128
|
+
self.respond_to?("run_#{cmd}", true)
|
129
|
+
end
|
130
|
+
|
131
|
+
def execute(cmd)
|
132
|
+
send("run_#{cmd}")
|
133
|
+
end
|
134
|
+
|
135
|
+
instance_methods.each do |meth|
|
136
|
+
meth = meth.to_s
|
137
|
+
next unless meth =~ /^cmd_/
|
138
|
+
cmd = meth.sub(/cmd_/, "")
|
139
|
+
Patterns[cmd] = meth.to_sym
|
140
|
+
end
|
141
|
+
|
142
|
+
File.open("/tmp/foo", "w") {|f| f.puts Patterns.inspect }
|
143
|
+
|
144
|
+
def is_site?(dir)
|
145
|
+
Dir.exist?(dir + "/source") &&
|
146
|
+
Dir.exist?(dir + "/target") &&
|
147
|
+
File.exist?(dir + "/config.txt")
|
148
|
+
end
|
149
|
+
|
150
|
+
def sites_detected
|
151
|
+
Dir.chdir("/Users/Hal/Dropbox/topx/web")
|
152
|
+
list = Dir.entries(".")
|
153
|
+
list.select do |x|
|
154
|
+
File.directory?(x) && is_site?(x)
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
Commands["sites"] = {}
|
159
|
+
Commands["edit"] = {abbr: "e"}
|
160
|
+
|
161
|
+
def cmd_sites
|
162
|
+
num, name = ::STDSCR.menu(title: "Sites detected:", items: sites_detected)
|
163
|
+
Dir.chdir(name)
|
164
|
+
read_config
|
165
|
+
print "\n Switching to "
|
166
|
+
puts fx(name, Blue, :bold)
|
167
|
+
puts
|
168
|
+
end
|
169
|
+
|
170
|
+
def check_current_site
|
171
|
+
flag = is_site?(".")
|
172
|
+
if flag
|
173
|
+
read_config
|
174
|
+
return true
|
175
|
+
else
|
176
|
+
puts "\n No current site.\n "
|
177
|
+
return false
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
def cmd_edit
|
182
|
+
return unless check_current_site
|
183
|
+
Dir.chdir("source")
|
184
|
+
list = Dir.entries(".")
|
185
|
+
list.reject! {|fname| fname =~ /\.(ico|png|gif|jpg|mp4|mov|jpeg)$/i }
|
186
|
+
list.reject! {|fname| File.directory?(fname) }
|
187
|
+
num, name = ::STDSCR.menu(title: "Source files", items: list)
|
188
|
+
if name
|
189
|
+
system("vi #{name}")
|
190
|
+
else
|
191
|
+
puts "\n Canceled\n "
|
192
|
+
end
|
193
|
+
Dir.chdir("..")
|
194
|
+
end
|
195
|
+
|
196
|
+
def run
|
197
|
+
super
|
198
|
+
end
|
199
|
+
|
200
|
+
end
|
201
|
+
|
202
|
+
# "Main"
|
203
|
+
|
204
|
+
|
205
|
+
x = RcmsREPL.new
|
206
|
+
x.run
|
207
|
+
|
208
|
+
exit
|
209
|
+
|
210
|
+
usage_message if ARGV.empty?
|
211
|
+
|
212
|
+
cmd = ARGV.first
|
213
|
+
|
214
|
+
abort "Don't know #{cmd}" unless command?(cmd)
|
215
|
+
|
216
|
+
execute(cmd)
|
217
|
+
|
data/lib/runecms/commands.rb
CHANGED
data/lib/runecms/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runecms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple static website manager based on Livetext (and Ruby)
|
14
14
|
email: rubyhacker@gmail.com
|
@@ -19,6 +19,7 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- "./README.lt3"
|
21
21
|
- "./README.md"
|
22
|
+
- bin/r2
|
22
23
|
- bin/rcms
|
23
24
|
- examples/ex1/config.txt
|
24
25
|
- examples/ex1/source/file2.html
|