discourse_theme 0.7.3 → 0.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -0
- data/Guardfile +1 -1
- data/lib/discourse_theme/cli.rb +14 -6
- data/lib/discourse_theme/client.rb +4 -4
- data/lib/discourse_theme/scaffold.rb +1 -1
- data/lib/discourse_theme/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47b628418ce66dfc84cec377019bb57e6ab82a82d681acda24d5d69c4a20f64c
|
4
|
+
data.tar.gz: 7bc2abbb64c101c59dc282f8cd24d340ca22a08ed805b4bd82d392f3a4358007
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 323c310d872c6c0efad7f2044404d3e53c754da50fbcba764cc52f32349f54c31a95ff7cb1dc756603dcd20215afb5801b5ab3c7654ec40962a67b725294983c
|
7
|
+
data.tar.gz: 1be9095c46371db3ab45dcd090e49d3a8f09185d06da44b8f3421579255882acc1a2952d75a1f7078e3369fdf08e64f277a3a460018ec6aa0f86e4507c4bd8e7
|
data/.github/workflows/ci.yml
CHANGED
data/Guardfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
directories %w(app lib test) \
|
3
|
-
.select { |d| Dir.
|
3
|
+
.select { |d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist") }
|
4
4
|
|
5
5
|
guard :minitest do
|
6
6
|
# with Minitest::Unit
|
data/lib/discourse_theme/cli.rb
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module DiscourseTheme
|
3
3
|
class Cli
|
4
|
-
|
4
|
+
@@cli_settings_filename = File.expand_path("~/.discourse_theme")
|
5
|
+
|
6
|
+
def self.settings_file
|
7
|
+
@@cli_settings_filename
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.settings_file=(filename)
|
11
|
+
@@cli_settings_filename = filename
|
12
|
+
end
|
5
13
|
|
6
14
|
def usage
|
7
15
|
puts "Usage: discourse_theme COMMAND [--reset]"
|
@@ -23,21 +31,21 @@ module DiscourseTheme
|
|
23
31
|
command = args[0].to_s.downcase
|
24
32
|
dir = File.expand_path(args[1])
|
25
33
|
|
26
|
-
config = DiscourseTheme::Config.new(
|
34
|
+
config = DiscourseTheme::Config.new(self.class.settings_file)
|
27
35
|
settings = config[dir]
|
28
36
|
|
29
37
|
theme_id = settings.theme_id
|
30
38
|
components = settings.components
|
31
39
|
|
32
40
|
if command == "new"
|
33
|
-
raise DiscourseTheme::ThemeError.new "'#{dir}' is not empty" if Dir.
|
41
|
+
raise DiscourseTheme::ThemeError.new "'#{dir}' is not empty" if Dir.exist?(dir) && !Dir.empty?(dir)
|
34
42
|
raise DiscourseTheme::ThemeError.new "git is not installed" if !command?("git")
|
35
43
|
raise DiscourseTheme::ThemeError.new "yarn is not installed" if !command?("yarn")
|
36
44
|
|
37
45
|
DiscourseTheme::Scaffold.generate(dir)
|
38
46
|
watch_theme?(args)
|
39
47
|
elsif command == "watch"
|
40
|
-
raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.
|
48
|
+
raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.exist?(dir)
|
41
49
|
client = DiscourseTheme::Client.new(dir, settings, reset: reset)
|
42
50
|
|
43
51
|
theme_list = client.get_themes_list
|
@@ -97,7 +105,7 @@ module DiscourseTheme
|
|
97
105
|
client = DiscourseTheme::Client.new(dir, settings, reset: reset)
|
98
106
|
downloader = DiscourseTheme::Downloader.new(dir: dir, client: client)
|
99
107
|
|
100
|
-
FileUtils.mkdir_p dir unless Dir.
|
108
|
+
FileUtils.mkdir_p dir unless Dir.exist?(dir)
|
101
109
|
raise DiscourseTheme::ThemeError.new "'#{dir} is not empty" unless Dir.empty?(dir)
|
102
110
|
|
103
111
|
UI.progress "Loading theme list..."
|
@@ -115,7 +123,7 @@ module DiscourseTheme
|
|
115
123
|
|
116
124
|
watch_theme?(args)
|
117
125
|
elsif command == "upload"
|
118
|
-
raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.
|
126
|
+
raise DiscourseTheme::ThemeError.new "'#{dir} does not exist" unless Dir.exist?(dir)
|
119
127
|
raise DiscourseTheme::ThemeError.new "No theme_id is set, please sync via the 'watch' command initially" if theme_id == 0
|
120
128
|
client = DiscourseTheme::Client.new(dir, settings, reset: reset)
|
121
129
|
|
@@ -160,7 +160,7 @@ module DiscourseTheme
|
|
160
160
|
|
161
161
|
if !url && settings.url
|
162
162
|
url = settings.url
|
163
|
-
UI.progress "Using #{url} from #{DiscourseTheme::Cli
|
163
|
+
UI.progress "Using #{url} from #{DiscourseTheme::Cli.settings_file}"
|
164
164
|
end
|
165
165
|
|
166
166
|
if !url || @reset
|
@@ -174,7 +174,7 @@ module DiscourseTheme
|
|
174
174
|
url = url.sub("http", "https")
|
175
175
|
end
|
176
176
|
|
177
|
-
if UI.yes?("Would you like this site name stored in #{DiscourseTheme::Cli
|
177
|
+
if UI.yes?("Would you like this site name stored in #{DiscourseTheme::Cli.settings_file}?")
|
178
178
|
settings.url = url
|
179
179
|
else
|
180
180
|
settings.url = nil
|
@@ -192,12 +192,12 @@ module DiscourseTheme
|
|
192
192
|
|
193
193
|
if !api_key && settings.api_key
|
194
194
|
api_key = settings.api_key
|
195
|
-
UI.progress "Using api key from #{DiscourseTheme::Cli
|
195
|
+
UI.progress "Using api key from #{DiscourseTheme::Cli.settings_file}"
|
196
196
|
end
|
197
197
|
|
198
198
|
if !api_key || @reset
|
199
199
|
api_key = UI.ask("What is your API key?", default: api_key).strip
|
200
|
-
if UI.yes?("Would you like this API key stored in #{DiscourseTheme::Cli
|
200
|
+
if UI.yes?("Would you like this API key stored in #{DiscourseTheme::Cli.settings_file}?")
|
201
201
|
settings.api_key = api_key
|
202
202
|
else
|
203
203
|
settings.api_key = nil
|
@@ -125,7 +125,7 @@ module DiscourseTheme
|
|
125
125
|
FileUtils.mkdir_p(File.dirname(locale))
|
126
126
|
File.write(locale, EN_YML.sub("#DESCRIPTION", description))
|
127
127
|
|
128
|
-
encoded_name = name.downcase.gsub(/[
|
128
|
+
encoded_name = name.downcase.gsub(/[^a-zA-Z0-9_-]+/, '_')
|
129
129
|
initializer = "javascripts/discourse/api-initializers/#{encoded_name}.js"
|
130
130
|
UI.info "Creating #{initializer}"
|
131
131
|
FileUtils.mkdir_p(File.dirname(initializer))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: discourse_theme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitar
|