aro 0.2.6 → 0.2.7
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/Gemfile.lock +5 -2
- data/README.md +10 -54
- data/aro.gemspec +2 -1
- data/bin/oss_om +2 -0
- data/checksums/aro-0.2.7.gem.sha512 +1 -0
- data/listen.rb +1 -1
- data/locale/en.cor.yml +21 -32
- data/locale/en.yml +8 -60
- data/sys/aro/action.rb +153 -0
- data/sys/aro/d.rb +3 -1
- data/sys/aro/db/migrate/1793913747_create_data_bases.rb +2 -0
- data/sys/aro/db/migrate/1793913777_create_data_base_directories.rb +2 -0
- data/sys/aro/db/migrate/1793913796_create_data_base_files.rb +2 -0
- data/sys/aro/db/migrate/1793913841_create_menus.rb +2 -0
- data/sys/aro/db/migrate/1793913861_create_menu_items.rb +3 -2
- data/sys/aro/db.rb +19 -33
- data/sys/aro/designer.rb +166 -97
- data/sys/aro/locale.rb +4 -2
- data/sys/aro/mancy.rb +6 -39
- data/sys/aro/models/concerns/tar_go_for_root_sec.rb +37 -0
- data/sys/aro/models/concerns/uuid.rb +2 -0
- data/sys/aro/models/data_base.rb +33 -8
- data/sys/aro/models/directory.rb +2 -0
- data/sys/aro/models/file.rb +3 -1
- data/sys/aro/models/menu.rb +64 -0
- data/sys/aro/models/menu_item.rb +70 -4
- data/sys/aro/oss_open_menu.rb +331 -0
- data/sys/aro/p.rb +15 -9
- data/sys/aro/r.rb +2 -0
- data/sys/aro/{cor.rb → settings/cor.rb} +91 -215
- data/sys/aro/settings/git.rb +69 -0
- data/sys/aro/settings/ssh.rb +123 -0
- data/sys/aro/store.rb +87 -36
- data/sys/aro/v.rb +2 -0
- data/sys/aro.rb +2 -0
- data/sys/ma_ain.rb +202 -0
- data/sys/reiquire.rb +41 -54
- data/sys/shr/prompt.rb +6 -1
- data/sys/shr/version.rb +7 -8
- metadata +31 -23
- data/locale/en.cards.yml +0 -519
- data/locale/en.cmd.yml +0 -34
- data/locale/en.usage.yml +0 -142
- data/sys/aro/cmd.rb +0 -96
- data/sys/aro/db/migrate/1763374647_create_tecks.rb +0 -20
- data/sys/aro/db/migrate/1763432541_create_tlogs.rb +0 -20
- data/sys/aro/ma_ain.rb +0 -54
- data/sys/aro/models/teck.rb +0 -251
- data/sys/aro/models/tlog.rb +0 -21
- data/sys/aro/views/base.rb +0 -25
- data/sys/aro/views/teck.rb +0 -30
- data/sys/cli/constants.rb +0 -45
- data/sys/cli/create.rb +0 -23
- data/sys/cli/nterface.rb +0 -37
- data/sys/cli/teck.rb +0 -107
- data/sys/cli/usage.rb +0 -25
- data/sys/cli.rb +0 -23
- data/sys/shr/t.rb +0 -74
data/sys/aro/designer.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
=begin
|
|
2
4
|
|
|
3
5
|
designer.rb
|
|
@@ -11,66 +13,72 @@
|
|
|
11
13
|
module Aro
|
|
12
14
|
module Dom
|
|
13
15
|
class Designer
|
|
14
|
-
ACTION_LJUST =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Aro::P.say(
|
|
21
|
-
abs_home = Aro::
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
ACTION_LJUST = 27
|
|
17
|
+
VALUE_LJUST = 27
|
|
18
|
+
CLASS_LJUST = 27
|
|
19
|
+
|
|
20
|
+
def self.design_oss_om
|
|
21
|
+
oss_home_path = File.expand_path(Dir.pwd)
|
|
22
|
+
Aro::P.say("set up oss_om home directory in '#{oss_home_path}'?")
|
|
23
|
+
abs_home = Aro::Dom::Designer.get_new_value_from_user(
|
|
24
|
+
"leave empty to use '#{oss_home_path}' as home.",
|
|
25
|
+
"enter new path: "
|
|
26
|
+
)
|
|
27
|
+
raise "missing required value for oss_om home!" if abs_home.nil? && oss_home_path.nil?
|
|
28
|
+
oss_home_path = abs_home.nil? ? oss_home_path : File.expand_path(abs_home)
|
|
29
|
+
oss_om_base_dir = ::File.join(oss_home_path, Aro::Mancy::ARO_DIRECTORY.to_s)
|
|
25
30
|
Aro::P.say("FileUtils.mkdir_p(#{oss_om_base_dir})")
|
|
26
31
|
FileUtils.mkdir_p(oss_om_base_dir)
|
|
27
|
-
Aro::P.say("FileUtils.chdir(#{aro_home_dir})")
|
|
28
|
-
FileUtils.chdir(aro_home_dir) do
|
|
29
|
-
Aro::P.say("Aro::Cor.instance.load_env")
|
|
30
|
-
Aro::Cor.instance.load_env
|
|
31
|
-
Aro::P.say("Aro::Cor.set_ivar(:OSS_OM_HOME, #{File.absolute_path(aro_home_dir)})")
|
|
32
|
-
Aro::Cor.set_ivar(:OSS_OM_HOME, File.absolute_path(aro_home_dir))
|
|
33
|
-
Aro::P.say("Aro::Db.ensure_connected!")
|
|
34
|
-
Aro::Db.ensure_connected!
|
|
35
|
-
Aro::P.say("Aro::Mancy.init(#{aro_home_dir})")
|
|
36
|
-
Aro::Mancy.init(aro_home_dir)
|
|
37
|
-
Aro::P.say("Reiquire.reload_i18n!")
|
|
38
|
-
Reiquire.reload_i18n!
|
|
39
|
-
# design_menu(Aro::Dom::Menu.first)
|
|
40
|
-
end
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
Aro::P.say("Aro::Cor.set_ivar(:OSS_OM_HOME, #{oss_home_path})")
|
|
34
|
+
Aro::Cor.set_ivar(:OSS_OM_HOME, oss_home_path)
|
|
35
|
+
|
|
36
|
+
if ::File.expand_path(Dir.pwd) != Aro::Cor.ivar(:OSS_OM_HOME)
|
|
37
|
+
Aro::P.say("run the following commands to continue:")
|
|
38
|
+
Aro::P.say("$ cd #{Aro::Cor.ivar(:OSS_OM_HOME)} && oss_om")
|
|
39
|
+
Aro::P.say("exiting...")
|
|
45
40
|
exit
|
|
41
|
+
else
|
|
42
|
+
# restarts Aro::Dom::Ma_ain.reign!
|
|
43
|
+
raise "needs install!"
|
|
46
44
|
end
|
|
47
45
|
design
|
|
48
46
|
end
|
|
49
47
|
|
|
50
|
-
|
|
51
48
|
def self.design
|
|
52
49
|
if Aro::Cor.ivar(:OSS_OM_HOME).nil?
|
|
53
|
-
|
|
50
|
+
design_oss_om
|
|
54
51
|
return
|
|
55
52
|
end
|
|
56
|
-
Aro::Dom::Ma_ain.instance.current_menu = Aro::Dom::DataBase.open_menu(:ma_ain)
|
|
57
53
|
|
|
54
|
+
Aro::P.say("Aro::Dom::Ma_ain.open!")
|
|
55
|
+
Aro::Dom::Ma_ain.open!
|
|
58
56
|
loop do
|
|
59
|
-
selected_menu_item_uuid = Aro::P.
|
|
57
|
+
selected_menu_item_uuid = Aro::P.default_select(
|
|
60
58
|
"#{Aro::Dom::Ma_ain.instance.current_menu.localized_name}",
|
|
61
|
-
|
|
62
|
-
show_help: :always,
|
|
63
|
-
cycle: true,
|
|
64
|
-
per_page: 11
|
|
59
|
+
Aro::Dom::Ma_ain.get_current_options
|
|
65
60
|
)
|
|
66
61
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Aro::Dom::
|
|
71
|
-
|
|
62
|
+
case selected_menu_item_uuid.to_sym
|
|
63
|
+
when :back
|
|
64
|
+
# todo: call_stack_bread_crumbs
|
|
65
|
+
Aro::Dom::Ma_ain.back!
|
|
66
|
+
when :open_menu
|
|
67
|
+
design_menu(
|
|
72
68
|
Aro::Dom::Ma_ain.instance.current_menu
|
|
73
69
|
)
|
|
70
|
+
else
|
|
71
|
+
if Aro::Dom::Ma_ain.running?
|
|
72
|
+
selected_menu_item = Aro::Dom::Ma_ain.instance.current_menu.menu_items.find_by(
|
|
73
|
+
uuid: selected_menu_item_uuid
|
|
74
|
+
)
|
|
75
|
+
selected_menu_item.run!
|
|
76
|
+
else
|
|
77
|
+
design_menu_item(
|
|
78
|
+
selected_menu_item_uuid,
|
|
79
|
+
Aro::Dom::Ma_ain.instance.current_menu
|
|
80
|
+
)
|
|
81
|
+
end
|
|
74
82
|
end
|
|
75
83
|
end
|
|
76
84
|
end
|
|
@@ -100,54 +108,69 @@ module Aro
|
|
|
100
108
|
new_name = get_new_value_from_user(
|
|
101
109
|
"#{__method__} #{Aro::Dom::MenuItem.name} for menu: '#{I18n.t(menu.full_i18n_path)}'"
|
|
102
110
|
)
|
|
111
|
+
|
|
103
112
|
unless new_name.nil? ||
|
|
104
113
|
new_name.empty? ||
|
|
105
114
|
new_name.kind_of?(FalseClass)
|
|
106
115
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
new_i18n_display_key: menu_item.uuid,
|
|
112
|
-
)
|
|
116
|
+
new_item = menu.generate_new_item(new_name)
|
|
117
|
+
raise "error generating new item!" if new_item.nil?
|
|
118
|
+
|
|
119
|
+
design_menu_item(new_item.uuid, menu)
|
|
113
120
|
else
|
|
114
121
|
Aro::P.say("#{new_name.inspect} is invalid")
|
|
122
|
+
design_menu(menu)
|
|
115
123
|
end
|
|
116
|
-
|
|
117
|
-
design_menu(menu)
|
|
118
124
|
end
|
|
119
125
|
|
|
120
126
|
def self.design_menu(menu = nil)
|
|
121
127
|
return create_menu if menu.nil?
|
|
122
128
|
|
|
123
|
-
|
|
129
|
+
item_mapper = Proc.new{|mi|
|
|
130
|
+
{
|
|
131
|
+
name: "(edit_item)".ljust(ACTION_LJUST) +
|
|
132
|
+
"#{mi.localized_name}".ljust(VALUE_LJUST) +
|
|
133
|
+
"#{mi.class.name}(#{mi.id})".ljust(CLASS_LJUST),
|
|
134
|
+
value: mi.uuid
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
# action,value,class
|
|
124
139
|
options = [
|
|
125
140
|
{
|
|
126
141
|
name: :back,
|
|
127
142
|
value: :back
|
|
128
143
|
},
|
|
144
|
+
{
|
|
145
|
+
name: "(#{Aro::Dom::Ma_ain::UNICODE_KEYS[:yinyang]}) toggle_run_mode".ljust(ACTION_LJUST) +
|
|
146
|
+
":#{Aro::Dom::Ma_ain::RUN_MODES[Aro::Dom::Ma_ain.instance.run_mode || Aro::Mancy::O]}".ljust(VALUE_LJUST) +
|
|
147
|
+
"available_modes: #{Aro::Dom::Ma_ain::RUN_MODES.to_s}".ljust(CLASS_LJUST),
|
|
148
|
+
value: :toggle_run_mode
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "(#{Aro::Dom::Ma_ain::UNICODE_KEYS[:yinyang]}) open_shell".ljust(ACTION_LJUST) +
|
|
152
|
+
"open a bash session".ljust(VALUE_LJUST),
|
|
153
|
+
value: :open_shell
|
|
154
|
+
},
|
|
129
155
|
{
|
|
130
156
|
name: "(edit_title)".ljust(ACTION_LJUST) +
|
|
131
|
-
"#{menu.
|
|
132
|
-
"#{menu.
|
|
157
|
+
"#{menu.localized_name}".ljust(VALUE_LJUST) +
|
|
158
|
+
"#{menu.class.name}(#{menu.id})".ljust(CLASS_LJUST),
|
|
133
159
|
value: :edit_title
|
|
134
160
|
}
|
|
135
|
-
] +
|
|
136
|
-
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"#{mi.localized_name}",
|
|
140
|
-
value: mi.uuid
|
|
141
|
-
}
|
|
142
|
-
} + [
|
|
161
|
+
] +
|
|
162
|
+
menu.menu_items.select{|mi| mi.user?}.map{|mi| item_mapper.call(mi)} +
|
|
163
|
+
menu.menu_items.select{|mi| mi.system?}.map{|mi| item_mapper.call(mi)} +
|
|
164
|
+
[
|
|
143
165
|
{
|
|
144
166
|
name: "(create_item)".ljust(ACTION_LJUST) +
|
|
167
|
+
"add new item to #{menu.localized_name}".ljust(VALUE_LJUST) +
|
|
145
168
|
"#{Aro::Dom::MenuItem.name}(+)".ljust(CLASS_LJUST),
|
|
146
169
|
value: :create_item
|
|
147
170
|
}
|
|
148
171
|
]
|
|
149
172
|
|
|
150
|
-
v = Aro::P.
|
|
173
|
+
v = Aro::P.default_select(
|
|
151
174
|
I18n.t("open_menu.edit_menu_localized_name", localized_name: menu.localized_name),
|
|
152
175
|
options
|
|
153
176
|
)
|
|
@@ -172,6 +195,12 @@ module Aro
|
|
|
172
195
|
create_menu_item(menu)
|
|
173
196
|
when :back
|
|
174
197
|
return
|
|
198
|
+
when :toggle_run_mode
|
|
199
|
+
Aro::Dom::Ma_ain.toggle_run_mode
|
|
200
|
+
return
|
|
201
|
+
when :open_shell
|
|
202
|
+
Aro::P.say("starting bash session for #{`whoami`.strip}")
|
|
203
|
+
system(:bash.to_s)
|
|
175
204
|
else
|
|
176
205
|
design_menu_item(v, menu)
|
|
177
206
|
end
|
|
@@ -182,22 +211,6 @@ module Aro
|
|
|
182
211
|
|
|
183
212
|
menu_item = menu.menu_items.find_by(uuid: menu_item_uuid)
|
|
184
213
|
|
|
185
|
-
# new_name = get_new_value_from_user(
|
|
186
|
-
# "rename #{menu_item.class} '#{I18n.t(menu_item.full_i18n_path)}'"
|
|
187
|
-
# )
|
|
188
|
-
# unless new_name.nil? ||
|
|
189
|
-
# new_name.empty? ||
|
|
190
|
-
# new_name.kind_of?(FalseClass)
|
|
191
|
-
|
|
192
|
-
# Aro::Dom::Locale.update_i18n_key(
|
|
193
|
-
# new_name,
|
|
194
|
-
# menu_item.uuid,
|
|
195
|
-
# library_name: :menu_items
|
|
196
|
-
# )
|
|
197
|
-
# else
|
|
198
|
-
# Aro::P.say("#{new_name.inspect} is invalid")
|
|
199
|
-
# end
|
|
200
|
-
|
|
201
214
|
# action,class,value
|
|
202
215
|
options = [
|
|
203
216
|
{
|
|
@@ -206,18 +219,19 @@ module Aro
|
|
|
206
219
|
},
|
|
207
220
|
{
|
|
208
221
|
name: "(edit_title)".ljust(ACTION_LJUST) +
|
|
209
|
-
"#{menu_item.
|
|
210
|
-
"#{menu_item.
|
|
222
|
+
"#{menu_item.localized_name}".ljust(VALUE_LJUST) +
|
|
223
|
+
"#{menu_item.class.name}(#{menu_item.id})".ljust(CLASS_LJUST),
|
|
211
224
|
value: :edit_title
|
|
212
225
|
},
|
|
213
226
|
{
|
|
214
227
|
name: "(edit_action)".ljust(ACTION_LJUST) +
|
|
228
|
+
"#{menu_item.action_display_text}".ljust(VALUE_LJUST) +
|
|
215
229
|
"Aro::Dom::MenuItem::Action(+)".ljust(CLASS_LJUST),
|
|
216
230
|
value: :edit_action
|
|
217
231
|
}
|
|
218
232
|
]
|
|
219
233
|
|
|
220
|
-
v = Aro::P.
|
|
234
|
+
v = Aro::P.default_select(
|
|
221
235
|
I18n.t("open_menu.edit_menu_item_localized_name", localized_name: menu_item.localized_name),
|
|
222
236
|
options
|
|
223
237
|
)
|
|
@@ -240,39 +254,94 @@ module Aro
|
|
|
240
254
|
Aro::P.say("#{new_name.inspect} is invalid")
|
|
241
255
|
end
|
|
242
256
|
when :edit_action
|
|
243
|
-
|
|
244
|
-
return
|
|
257
|
+
design_action_for(menu_item)
|
|
245
258
|
when :back
|
|
246
259
|
return
|
|
247
260
|
end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
def self.edit_action_for(menu_item)
|
|
264
|
+
action_name = menu_item.store.safe_get_key("action_name")&.to_sym
|
|
265
|
+
|
|
266
|
+
raise "missing action!" if action_name.nil?
|
|
267
|
+
|
|
268
|
+
options = [
|
|
269
|
+
{
|
|
270
|
+
name: :back,
|
|
271
|
+
value: :back
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
name: "(edit_type)".ljust(ACTION_LJUST) +
|
|
275
|
+
"#{menu_item.action_storage_key}".ljust(VALUE_LJUST) +
|
|
276
|
+
"#{Aro::Dom::Action.name}(#{action_name})".ljust(CLASS_LJUST),
|
|
277
|
+
value: :edit_type
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
name: "(edit_method)".ljust(ACTION_LJUST) +
|
|
281
|
+
"#{menu_item.action_display_text}".ljust(VALUE_LJUST) +
|
|
282
|
+
"Aro::Dom::MenuItem::Action(#{action_name})".ljust(CLASS_LJUST),
|
|
283
|
+
value: :edit_method
|
|
284
|
+
}
|
|
285
|
+
]
|
|
286
|
+
v = Aro::P.default_select(
|
|
287
|
+
I18n.t("open_menu.edit_action_for_menu_item", localized_name: menu_item.localized_name, action_name: action_name),
|
|
288
|
+
options
|
|
289
|
+
)
|
|
248
290
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
# "=> for #{menu_item.class}(#{menu_item.uuid})"
|
|
257
|
-
# ].join("\n"))
|
|
258
|
-
|
|
259
|
-
# menu_item.aro_file.write!({tty_name: new_name})
|
|
291
|
+
case v.to_sym
|
|
292
|
+
when :edit_type
|
|
293
|
+
design_action_for(menu_item, overwrite: true)
|
|
294
|
+
when :edit_method
|
|
295
|
+
# todo: case when for oss_om_entry types here
|
|
296
|
+
Aro::Dom::Oss_OpenMenu.create_exec_oss_om_entry_for(menu_item)
|
|
297
|
+
end
|
|
260
298
|
end
|
|
261
299
|
|
|
262
|
-
|
|
300
|
+
def self.design_action_for(menu_item, overwrite: false)
|
|
301
|
+
return if menu_item.nil?
|
|
302
|
+
return edit_action_for(menu_item) if menu_item.actionable? && !overwrite
|
|
303
|
+
|
|
304
|
+
# action,class,value
|
|
305
|
+
options = [
|
|
306
|
+
{
|
|
307
|
+
name: :back,
|
|
308
|
+
value: :back
|
|
309
|
+
}
|
|
310
|
+
] + Aro::Dom::Action::TYPES.keys.map{|k|
|
|
311
|
+
{
|
|
312
|
+
name: "(#{k})".ljust(ACTION_LJUST) +
|
|
313
|
+
"#{menu_item.localized_name}".ljust(VALUE_LJUST) +
|
|
314
|
+
"#{menu_item.class.name}(#{menu_item.id})".ljust(CLASS_LJUST),
|
|
315
|
+
value: k
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
v = Aro::P.default_select(
|
|
320
|
+
I18n.t("open_menu.design_action_for_menu_item", localized_name: menu_item.localized_name),
|
|
321
|
+
options
|
|
322
|
+
)
|
|
323
|
+
|
|
324
|
+
case v.to_sym
|
|
325
|
+
when :back
|
|
326
|
+
return
|
|
327
|
+
else
|
|
328
|
+
Aro::Dom::Action.create(v, menu_item)
|
|
329
|
+
end
|
|
330
|
+
end
|
|
263
331
|
|
|
264
|
-
def self.get_new_value_from_user(ask_text)
|
|
332
|
+
def self.get_new_value_from_user(ask_text, prompt_text_override = nil)
|
|
265
333
|
Aro::P.say(__method__)
|
|
266
334
|
new_val = nil
|
|
267
335
|
user_cancelled = false
|
|
268
336
|
while new_val.nil? && !user_cancelled
|
|
269
337
|
Aro::P.say(ask_text)
|
|
270
|
-
|
|
338
|
+
puts "\n"
|
|
339
|
+
new_val = Aro::P.p.ask(prompt_text_override || I18n.t("open_menu.get_new_value_from_user"))
|
|
271
340
|
user_cancelled = new_val.nil? || new_val.empty?
|
|
272
341
|
new_val = nil if user_cancelled
|
|
273
342
|
end
|
|
274
343
|
|
|
275
|
-
return
|
|
344
|
+
return nil if user_cancelled
|
|
276
345
|
return new_val
|
|
277
346
|
end
|
|
278
347
|
|
data/sys/aro/locale.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
=begin
|
|
2
4
|
|
|
3
5
|
locale.rb
|
|
@@ -73,7 +75,7 @@ module Aro
|
|
|
73
75
|
|
|
74
76
|
def self.i18n_valuify_text(text)
|
|
75
77
|
# gsub non-word characters with " "
|
|
76
|
-
text.gsub(/[\W]/, " ")
|
|
78
|
+
text.to_s.gsub(/[\W]/, " ")
|
|
77
79
|
end
|
|
78
80
|
|
|
79
81
|
private
|
|
@@ -123,7 +125,7 @@ module Aro
|
|
|
123
125
|
Aro::P.say("Psych.load_file(#{library_filepath})")
|
|
124
126
|
loaded_file = Psych.load_file(library_filepath)
|
|
125
127
|
rescue Psych::SyntaxError => e
|
|
126
|
-
Aro::P.say(I18n.t("errors.locale_load_error", named: library_name))
|
|
128
|
+
Aro::P.say(I18n.t("open_menu.errors.locale_load_error", named: library_name))
|
|
127
129
|
Aro::P.say(e.inspect)
|
|
128
130
|
Aro::P.say(e.message)
|
|
129
131
|
return nil
|
data/sys/aro/mancy.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
=begin
|
|
2
4
|
|
|
3
5
|
aro.rb
|
|
@@ -13,9 +15,6 @@
|
|
|
13
15
|
module Aro
|
|
14
16
|
class Mancy
|
|
15
17
|
include Singleton
|
|
16
|
-
|
|
17
|
-
attr_accessor :current, :db_busy, :db_thread
|
|
18
|
-
|
|
19
18
|
A = :"@"
|
|
20
19
|
O = 0
|
|
21
20
|
S = 1
|
|
@@ -24,7 +23,7 @@ module Aro
|
|
|
24
23
|
N = 4
|
|
25
24
|
V = 5
|
|
26
25
|
DATE_FORMAT = "%A %d %b %Y %I:%M:%S %p"
|
|
27
|
-
NAME_FILE = :".
|
|
26
|
+
NAME_FILE = :".oss_om_space"
|
|
28
27
|
ARO_DIRECTORY = :".oss_om"
|
|
29
28
|
|
|
30
29
|
I2097I = :i2097i
|
|
@@ -62,19 +61,6 @@ module Aro
|
|
|
62
61
|
MMXCVII: Aro::Mancy::I2097I[Aro::Mancy::S..Aro::Mancy::N].to_i,
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
def remember!
|
|
66
|
-
# start monitoring
|
|
67
|
-
self.start_db_thread
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def self.teck
|
|
71
|
-
self.init(root_dir)
|
|
72
|
-
if Aro::Mancy.in_aro? && Aro::Mancy.is_initialized?
|
|
73
|
-
self.instance.current = Aro::Teck.current_teck
|
|
74
|
-
end
|
|
75
|
-
self.instance.current
|
|
76
|
-
end
|
|
77
|
-
|
|
78
64
|
def self.create(aro_name, is_test: false)
|
|
79
65
|
Aro::D.say(__method__)
|
|
80
66
|
Aro::D.say(:depricated)
|
|
@@ -82,7 +68,7 @@ module Aro
|
|
|
82
68
|
end
|
|
83
69
|
|
|
84
70
|
def self.init(root_dir_path)
|
|
85
|
-
unless Aro::Mancy.in_aro?
|
|
71
|
+
unless Aro::Mancy.in_aro?
|
|
86
72
|
Aro::P.say("init aro running in #{root_dir_path} directory...")
|
|
87
73
|
new_name = File.basename(root_dir_path)
|
|
88
74
|
Aro::P.say("echo #{new_name} > #{Aro::Mancy::NAME_FILE.to_s}")
|
|
@@ -91,6 +77,7 @@ module Aro
|
|
|
91
77
|
file.write("\n")
|
|
92
78
|
end
|
|
93
79
|
end
|
|
80
|
+
return true
|
|
94
81
|
end
|
|
95
82
|
|
|
96
83
|
def self.root_dir
|
|
@@ -101,7 +88,7 @@ module Aro
|
|
|
101
88
|
end
|
|
102
89
|
|
|
103
90
|
def self.is_initialized?
|
|
104
|
-
in_aro? &&
|
|
91
|
+
in_aro? && Aro::Db.instance.connected?
|
|
105
92
|
end
|
|
106
93
|
|
|
107
94
|
def self.in_aro?
|
|
@@ -119,25 +106,5 @@ module Aro
|
|
|
119
106
|
def self.ps1_display(cls_name = nil)
|
|
120
107
|
:">[#{cls_name || Aro::Mancy.domain || aro_mancy_name}]>: ".to_s
|
|
121
108
|
end
|
|
122
|
-
|
|
123
|
-
private
|
|
124
|
-
|
|
125
|
-
def start_db_thread
|
|
126
|
-
return if @db_busy
|
|
127
|
-
@db_busy = true
|
|
128
|
-
self.db_thread&.exit
|
|
129
|
-
self.db_thread&.kill
|
|
130
|
-
self.db_thread = Thread.new do
|
|
131
|
-
loop do
|
|
132
|
-
@db_busy = true
|
|
133
|
-
Aro::V.say(Aro::Mancy.instance.db_thread.inspect)
|
|
134
|
-
Aro::V.say(__method__)
|
|
135
|
-
Aro::Db.ensure_connected!
|
|
136
|
-
@db_busy = false
|
|
137
|
-
sleep(Aro::Db::HEARTBEAT_DURATION)
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
109
|
end
|
|
143
110
|
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
=begin
|
|
4
|
+
|
|
5
|
+
tar_go_for_root_sec.rb
|
|
6
|
+
|
|
7
|
+
oss_om encryption system
|
|
8
|
+
|
|
9
|
+
by i2097i
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
module Aro
|
|
14
|
+
module Dom
|
|
15
|
+
module TarGoForRootSec
|
|
16
|
+
extend ActiveSupport::Concern
|
|
17
|
+
|
|
18
|
+
# todo: implement tar_go_for_root_sec
|
|
19
|
+
# currently only for Aro::Dom::MenuItem
|
|
20
|
+
|
|
21
|
+
included do
|
|
22
|
+
before_create :do_encryption_stuff
|
|
23
|
+
before_commit :do_encryption_stuff
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def do_encryption_stuff
|
|
29
|
+
Aro::P.say(__method__)
|
|
30
|
+
Aro::P.say("todo: #{self.class.name}")
|
|
31
|
+
Aro::P.say(self.class.inspect)
|
|
32
|
+
Aro::Dom::Ma_ain.i2097i_bookmark
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
data/sys/aro/models/data_base.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
=begin
|
|
2
4
|
|
|
3
5
|
data.rb
|
|
@@ -32,6 +34,15 @@ class Aro::Dom::DataBase < ActiveRecord::Base
|
|
|
32
34
|
)
|
|
33
35
|
end
|
|
34
36
|
|
|
37
|
+
case menu_sym
|
|
38
|
+
when :ma_ain
|
|
39
|
+
menu.generate_ma_ain!
|
|
40
|
+
when :settings
|
|
41
|
+
menu.generate_settings!
|
|
42
|
+
else
|
|
43
|
+
menu.generate_user_default!
|
|
44
|
+
end
|
|
45
|
+
|
|
35
46
|
# return the menu
|
|
36
47
|
return menu
|
|
37
48
|
end
|
|
@@ -40,9 +51,28 @@ class Aro::Dom::DataBase < ActiveRecord::Base
|
|
|
40
51
|
Aro::Dom::DataBase.find_or_create_by(unix_path: Aro::Dom::Menu.table_name)
|
|
41
52
|
end
|
|
42
53
|
|
|
43
|
-
def self.sync_menu_item(menu_item)
|
|
44
|
-
|
|
45
|
-
|
|
54
|
+
def self.sync_menu_item!(menu_item, localized_name)
|
|
55
|
+
raise "missing menu_item!" unless !menu_item.nil? &&
|
|
56
|
+
menu_item.kind_of?(Aro::Dom::MenuItem)
|
|
57
|
+
|
|
58
|
+
Aro::Dom::Locale.update_i18n_key(
|
|
59
|
+
localized_name,
|
|
60
|
+
menu_item.uuid,
|
|
61
|
+
library_name: :menu_items
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
# set up by system menus
|
|
65
|
+
return true if menu_item.system?
|
|
66
|
+
|
|
67
|
+
# ensure default menu_item.aro_file exists
|
|
68
|
+
# for user-created menu items
|
|
69
|
+
menu_item.aro_file.write!(
|
|
70
|
+
Aro::Dom::Store.build_exec_oss_om_params!(
|
|
71
|
+
Aro::Dom::Oss_OpenMenu,
|
|
72
|
+
:name, # defaults to Aro::Dom::Oss_OpenMenu.name
|
|
73
|
+
menu_item.localized_name
|
|
74
|
+
)
|
|
75
|
+
)
|
|
46
76
|
end
|
|
47
77
|
|
|
48
78
|
def self.ensure_data_base_exist!
|
|
@@ -57,11 +87,6 @@ class Aro::Dom::DataBase < ActiveRecord::Base
|
|
|
57
87
|
|
|
58
88
|
def self.ensure_data_base_git!
|
|
59
89
|
ensure_data_base_exist! unless Dir.exist?(root_aro_unix_data_dir)
|
|
60
|
-
FileUtils.chdir(root_aro_unix_data_dir) do
|
|
61
|
-
Aro::P.say("todo:")
|
|
62
|
-
Aro::P.say(__method__)
|
|
63
|
-
# system("git init")
|
|
64
|
-
end
|
|
65
90
|
end
|
|
66
91
|
|
|
67
92
|
def unix_path_valid?
|
data/sys/aro/models/directory.rb
CHANGED
data/sys/aro/models/file.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
=begin
|
|
2
4
|
|
|
3
5
|
row.rb
|
|
@@ -13,7 +15,7 @@ class Aro::Dom::DataBase::File < ActiveRecord::Base
|
|
|
13
15
|
self.table_name = :data_base_files
|
|
14
16
|
belongs_to :data_base_directory, class_name: "Aro::Dom::DataBase::Directory"
|
|
15
17
|
|
|
16
|
-
def write!(updates
|
|
18
|
+
def write!(updates)
|
|
17
19
|
Aro::Dom::Store.edit(self, updates)
|
|
18
20
|
end
|
|
19
21
|
|