cmdbox 0.5.0.6__py3-none-any.whl → 0.5.0.8__py3-none-any.whl

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.

Potentially problematic release.


This version of cmdbox might be problematic. Click here for more details.

@@ -60,7 +60,8 @@ class Colors:
60
60
  BackgroundWhite = 107
61
61
 
62
62
  _colorize_suffix = S + str(ResetAll) + E
63
-
63
+
64
+ product_word = re.compile(r"CMDBOX|IINFER|USOUND|GAIAN|GAIC|WITSHAPE", re.IGNORECASE)
64
65
  success_word = re.compile(r"SUCCESS|OK|PASSED|DONE|COMPLETE|START|FINISH|OPEN|CONNECTED|ALLOW|EXEC", re.IGNORECASE)
65
66
  warning_word = re.compile(r"WARNING|WARN|CAUTION|NOTICE|STOP|DISCONNECTED|DENY", re.IGNORECASE)
66
67
  error_word = re.compile(r"ERROR|ALERT|CRITICAL|FATAL|ABORT|FAILED", re.IGNORECASE)
@@ -72,6 +73,7 @@ def colorize_msg(msg) -> str:
72
73
  msg = Colors.success_word.sub(colorize(r"\g<0>", Colors.Green), msg)
73
74
  msg = Colors.warning_word.sub(colorize(r"\g<0>", Colors.Yellow), msg)
74
75
  msg = Colors.error_word.sub(colorize(r"\g<0>", Colors.Red), msg)
76
+ msg = Colors.product_word.sub(colorize(r"\g<0>", Colors.LightBlue), msg)
75
77
  return msg
76
78
 
77
79
  level_mapping = {
@@ -177,11 +177,11 @@ class ExecCmd(cmdbox_web_load_cmd.LoadCmd):
177
177
  output = [dict(warn=f'The captured stdout was discarded because its size was larger than {capture_maxsize} bytes.')]
178
178
  else:
179
179
  output = [dict(warn='capture_stdout is off.')]
180
- old_stdout.write(loghandler.colorize_msg(f'EXEC: {output}\n'[:logsize]))
180
+ old_stdout.write(loghandler.colorize_msg(f'EXEC: {output}'[:logsize])+'\n')
181
181
  except Exception as e:
182
182
  web.logger.disabled = False # ログ出力を有効にする
183
183
  msg = f'exec_cmd error. {traceback.format_exc()}'
184
- old_stdout.write(loghandler.colorize_msg(f'EXEC: {msg}\n'[:logsize]))
184
+ old_stdout.write(loghandler.colorize_msg(f'EXEC: {msg}'[:logsize])+'\n')
185
185
  web.logger.warning(msg)
186
186
  output = [dict(warn=f'<pre>{html.escape(traceback.format_exc())}</pre>')]
187
187
  sys.stdout = old_stdout
cmdbox/app/web.py CHANGED
@@ -1189,11 +1189,17 @@ class Web:
1189
1189
  self.logger.debug(f"web start parameter: guvicorn_timeout={self.guvicorn_timeout}")
1190
1190
 
1191
1191
  app = FastAPI()
1192
+ @app.middleware("http")
1193
+ async def set_context_cookie(req:Request, call_next):
1194
+ res:Response = await call_next(req)
1195
+ res.set_cookie("context_path", self.session_path, path=self.session_path, domain=self.session_domain)
1196
+ return res
1197
+
1192
1198
  mwparam = dict(path=self.session_path, max_age=self.session_timeout, secret_key=common.random_string())
1193
1199
  if self.session_domain is not None:
1194
1200
  mwparam['domain'] = self.session_domain
1195
1201
  if self.session_secure:
1196
- mwparam['https_only'] = True
1202
+ mwparam['https_only'] = True # セッションハイジャック対策
1197
1203
  app.add_middleware(SessionMiddleware, **mwparam)
1198
1204
  self.init_webfeatures(app)
1199
1205
 
cmdbox/version.py CHANGED
@@ -1,9 +1,9 @@
1
1
  import datetime
2
2
 
3
- dt_now = datetime.datetime(2025, 3, 12)
3
+ dt_now = datetime.datetime(2025, 3, 16)
4
4
  __appid__ = 'cmdbox'
5
5
  __title__ = 'cmdbox (Command Development Application)'
6
- __version__ = '0.5.0.6'
6
+ __version__ = '0.5.0.8'
7
7
  __copyright__ = f'Copyright © 2023-{dt_now.strftime("%Y")} hamacom2004jp'
8
8
  __pypiurl__ = 'https://pypi.org/project/cmdbox/'
9
9
  __srcurl__ = 'https://github.com/hamacom2004jp/cmdbox'
@@ -353,7 +353,7 @@ cmdbox.init_modal_button = () => {
353
353
  $('.btn_window').off('click').on('click', () => {
354
354
  $('.btn_window_stack').css('margin-left', 'auto').show();
355
355
  $('.btn_window').css('margin-left', '0px').hide();
356
- $('.btn_window_stack').parents('.modal-dialog').addClass('modal-fullscreen');
356
+ $('.btn_window_stack').parents('.modal-dialog').css('top', '').css('left', '').addClass('modal-fullscreen');
357
357
  });
358
358
  $('.btn_window_stack').css('margin-left', '0px').hide();
359
359
  $('.btn_window').css('margin-left', 'auto').show();
@@ -71,6 +71,7 @@ const list_cmd_func_then = () => {
71
71
  const target_name = row.opt;
72
72
  let input_elem, elem;
73
73
  if(!row.choice) {
74
+ // 選択肢がない場合
74
75
  if(row.type=='text') {
75
76
  elem = $(cmd_modal.find('.row_content_template_text').html());
76
77
  } else if(row.type=='dict') {
@@ -85,11 +86,16 @@ const list_cmd_func_then = () => {
85
86
  input_elem.val(row.default);
86
87
  }
87
88
  else {
88
- elem = $(cmd_modal.find('.row_content_template_choice').html());
89
+ // 選択肢がある場合
90
+ if(row.type=='dict') {
91
+ elem = $(cmd_modal.find('.row_content_template_dict_choice').html());
92
+ } else {
93
+ elem = $(cmd_modal.find('.row_content_template_choice').html());
94
+ }
89
95
  if (next_elem) next_elem.after(elem);
90
96
  else row_content.append(elem);
91
- input_elem = elem.find('.row_content_template_select');
92
- input_elem.removeClass('row_content_template_select');
97
+ input_elem = elem.find('.row_content_template_select,.row_content_template_input');
98
+ input_elem.removeClass('row_content_template_select').removeClass('row_content_template_input');
93
99
  if (row.choice_show) {
94
100
  input_elem.addClass('choice_show');
95
101
  input_elem.change(() => {
@@ -109,7 +115,7 @@ const list_cmd_func_then = () => {
109
115
  });
110
116
  }
111
117
  input_elem.html(mkopt(row.choice));
112
- input_elem.val(`${row.default}`);
118
+ input_elem.val(`${row.default!=null?row.default:''}`);
113
119
  }
114
120
  let index = 0;
115
121
  if (cmd_modal.find(`[name="${target_name}"]`).length > 0) {
@@ -478,6 +484,7 @@ const get_param = (modal_elem) => {
478
484
  $(elem).addClass('is-valid');
479
485
  }
480
486
  } else if (data_type=='dict') {
487
+ data_val = data_val ? data_val : '';
481
488
  if(data_val.indexOf(' ')>=0) $(elem).addClass('is-invalid');
482
489
  else {
483
490
  $(elem).removeClass('is-invalid');
@@ -25,16 +25,15 @@ const view_raw_func = (title, result) => {
25
25
  try {
26
26
  if (found) {
27
27
  const url = URL.parse(val.replace(/curl.+[^(http)](https?:\/\/[\w/:%#\$&\?\(\)~\.=\+\-]+)/, '$1'));
28
- url.host = window.location.host;
29
28
  const curl = val.replace(/^(curl.+[^(http)])(https?:\/\/[\w/:%#\$&\?\(\)~\.=\+\-]+)/, '$1');
30
29
  const td = $(`<td>${curl}</td>`).appendTo(tr);
31
- const ctx_Path_mt = document.cookie.match(/Path=([^;]+)/);
30
+ const ctx_Path_mt = document.cookie.match(/context_path="?([^;"]+)"?/);
32
31
  const ctx_Path = ctx_Path_mt && ctx_Path_mt.length>0 ? ctx_Path_mt[1] : '/';
33
- const href = `${url.protocol}//${url.host}${ctx_Path}${url.pathname.replace(new RegExp(`^${ctx_Path}`), '')}`;
32
+ const href = `${window.location.protocol}//${window.location.host}${ctx_Path}${url.pathname.replace(new RegExp(`^${ctx_Path}`), '')}`;
34
33
  const anc = $(`<a href="#">${href}</a>`).appendTo(td);
35
34
  anc.off('click').on('click', (e) => {
36
35
  if (!window.confirm(`May I execute '${title}' ?`)) return;
37
- window.open(url.href, '_blank');
36
+ window.open(href, '_blank');
38
37
  });
39
38
  found = false;
40
39
  continue;
cmdbox/web/gui.html CHANGED
@@ -251,6 +251,17 @@
251
251
  </div>
252
252
  </div>
253
253
  </div>
254
+ <div class="row d-none row_content_template_dict_choice">
255
+ <div class="col-12 mb-3">
256
+ <div class="input-group">
257
+ <label class="input-group-text row_content_template_title">title</label>
258
+ <input type="text" class="form-control row_content_key row_content_template_input">
259
+ <label class="input-group-text">=</label>
260
+ <select class="form-select row_content_template_select">
261
+ </select>
262
+ </div>
263
+ </div>
264
+ </div>
254
265
  <div class="row d-none row_content_template_choice">
255
266
  <div class="col-6 mb-3">
256
267
  <div class="input-group">
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmdbox
3
- Version: 0.5.0.6
3
+ Version: 0.5.0.8
4
4
  Summary: cmdbox: It is a command line application with a plugin mechanism.
5
5
  Home-page: https://github.com/hamacom2004jp/cmdbox
6
6
  Author: hamacom2004jp
@@ -6,7 +6,7 @@ cmdbox/logconf_edge.yml,sha256=RkbUebCJV2z5dLnpgvf4GSFkd-Blzu4vUUDP9CQFwdM,686
6
6
  cmdbox/logconf_gui.yml,sha256=T3yhWoiyp0DW06RjiFG6kS7jScqXYs-KLfC5EYKUImk,686
7
7
  cmdbox/logconf_server.yml,sha256=tpDpKQXgTWzUnHKGU-Vvsha7n1hyIyFdLnSeCgnOgyk,701
8
8
  cmdbox/logconf_web.yml,sha256=lzr3ytjqRbQutbhEOJdHJT0hrrR_h9sPkaEQkzX02lo,686
9
- cmdbox/version.py,sha256=ETvn5dzLvu--SWMntVWrUIFEeMHtYBODU_ljwNHZ3EI,1963
9
+ cmdbox/version.py,sha256=NhSu1Nz84OuNSy4YY1fAowqPGPE0AMF6fGb8MCM1UHw,1963
10
10
  cmdbox/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  cmdbox/app/app.py,sha256=2rQpTbezCLuy36df89EhKsAfcPjtGepGHSTQZXimcqA,8949
12
12
  cmdbox/app/client.py,sha256=SNM4xxDh5ARxV6I7cDrmbzGc7sXUUwB3tSyIksdT1RY,19562
@@ -17,9 +17,9 @@ cmdbox/app/filer.py,sha256=L_DSMTvnbN_ffr3JIt0obbOmVoTHEfVm2cAVz3rLH-Q,16059
17
17
  cmdbox/app/options.py,sha256=A4q4dAFAsTaV_k4z7n7hT2Dl6Ei6DrQ7X0xKoVDK6sM,31092
18
18
  cmdbox/app/server.py,sha256=rrH_a6zzrx7glp_SqRrc_2gBgRoT9FX0F1bpGxVLX1I,9467
19
19
  cmdbox/app/signin.py,sha256=Ry4jxUuroOAIAfTYSolMm_izaF27-IS7914I4vhr6yU,2577
20
- cmdbox/app/web.py,sha256=6MXgl_lb4MZO8Lq1kZnGNiIZw6d0eO4c9T-izD_XzZY,80017
20
+ cmdbox/app/web.py,sha256=d_lrJi6UWVRbsUGzW_LYdW2VYND1FYSTrh_1bejgrh4,80345
21
21
  cmdbox/app/commons/convert.py,sha256=etWeutkPyE8FMz11jw4KJ5uip7qu_CoD1yIqF5iypgg,6754
22
- cmdbox/app/commons/loghandler.py,sha256=TQXXg8KdAzHMPwSQGq7RP0qTHxb35PhUTqqDFWkimgk,3306
22
+ cmdbox/app/commons/loghandler.py,sha256=HFTlsQEshFaIubCH-AjvXOE0swbYtv77kSy2pwRz_8c,3469
23
23
  cmdbox/app/commons/module.py,sha256=RsEyqP9Qty4v0qIEE6VuY4pgMlkhJKNTUhsN5p-sSoM,4880
24
24
  cmdbox/app/commons/redis_client.py,sha256=HuCsh3FtoeuRqU--qVy3KmO5sAVkGGrfYpeOf1vlMtw,14203
25
25
  cmdbox/app/features/cli/cmdbox_client_file_copy.py,sha256=WqxhkYhoL9uxlvqorkJTTOGaDF3Fl0aEdp0qQu2Efeg,12875
@@ -59,7 +59,7 @@ cmdbox/app/features/web/cmdbox_web_del_cmd.py,sha256=GSFXglQza8OOnVJvL53Jr6KEAjT
59
59
  cmdbox/app/features/web/cmdbox_web_del_pipe.py,sha256=rTG4kRQJ6c9x5uScPp3ZwHAQz9p_gyQ1wv0M8geBqBw,1136
60
60
  cmdbox/app/features/web/cmdbox_web_do_signin.py,sha256=uVWXDO8OCAMDkJbAKt8b1AMOoH1EKnjV9svEHUSW1II,17147
61
61
  cmdbox/app/features/web/cmdbox_web_do_signout.py,sha256=jROCSIDZ2frn3N8EEZkvjS1_IvBXrWVio-Ee1kV0_yw,910
62
- cmdbox/app/features/web/cmdbox_web_exec_cmd.py,sha256=KiN3L7OrG93notiptmt8B90MgvHcL5pj510iUGv6i4Q,11083
62
+ cmdbox/app/features/web/cmdbox_web_exec_cmd.py,sha256=BwRVD9qYOpEBIj6NvtBH_-Kw9oLB7ZE9qTlfVnVlHE4,11089
63
63
  cmdbox/app/features/web/cmdbox_web_exec_pipe.py,sha256=uKWQodWO2Pr3dAJf8t5AmDH91vQZ_urp2y2da382hqA,10537
64
64
  cmdbox/app/features/web/cmdbox_web_filer download.py,sha256=7QaOnN9EGPQsyybWmiKH-uVsibbcPOkVGU8ya2Txszs,2283
65
65
  cmdbox/app/features/web/cmdbox_web_filer.py,sha256=LtEF0-MupyjysZklsvbBgHEAJaVRRRkP0yW-fWa7tFo,1814
@@ -186,17 +186,17 @@ cmdbox/licenses/LICENSE.zope.interface.7.1.1(Zope Public License).txt,sha256=bHk
186
186
  cmdbox/licenses/files.txt,sha256=E_C-9JE8iJeOs-ZY_Lg1B3Brcdqr8G-kJeFnWeSHXUk,14179
187
187
  cmdbox/web/assets_license_list.txt,sha256=TcyF-U5C8O-J3Nxfp3pxralGdazTj8BgLwwEBRn59_w,853
188
188
  cmdbox/web/filer.html,sha256=NQzwJc1k4IDpK1F99vumLC3BO7x_frO6HJcEzI9c0kw,15254
189
- cmdbox/web/gui.html,sha256=6qINDpZmTxeJ8uc2AhCc4Vq2lcXjaiOEMNziehrINdM,33923
189
+ cmdbox/web/gui.html,sha256=5RB9iSpiCLEpFIOJZQ52JRpOYEV5OdAjFxT1UcQOEmQ,34635
190
190
  cmdbox/web/result.html,sha256=dZcQCLSrhTr7gY50WYCfG2wEWngnV7x9xnYOVl73WSQ,14835
191
191
  cmdbox/web/signin.html,sha256=blFKNzpmJane-sUF2Xev5F1645oLoq_fuDMYd0_iziU,10556
192
192
  cmdbox/web/users.html,sha256=RHslVrj8FJgV1RI6oMTRuZTu3g7YyXMKKYGeoOzgwG4,19194
193
193
  cmdbox/web/assets/bootstrap/bootstrap.bundle.min.5.3.0.js,sha256=qlPVgvl-tZTCpcxYJFdHB_m6mDe84wRr-l81VoYPTgQ,80421
194
194
  cmdbox/web/assets/bootstrap/bootstrap.min.5.3.0.css,sha256=fx038NkLY4U1TCrBDiu5FWPEa9eiZu01EiLryshJbCo,232914
195
- cmdbox/web/assets/cmdbox/common.js,sha256=WuzMCSe4NrVdJP-mXTj2th7kyn_ZWtl3DOxCRoD8Pz8,39418
195
+ cmdbox/web/assets/cmdbox/common.js,sha256=rsegebcs7QtBNi-WEy5-sev-EDIEHV9P-0HZojoAzME,39449
196
196
  cmdbox/web/assets/cmdbox/favicon.ico,sha256=2U4MhqzJklRksOQwnK-MZigZCubxCHqKG_AuNJnvYtA,34494
197
197
  cmdbox/web/assets/cmdbox/filer_modal.js,sha256=hCEk0UR_bjJp9X9blWfmrbZVxKkmO3GGQ44ukSDuHbg,8522
198
198
  cmdbox/web/assets/cmdbox/icon.png,sha256=xdEwDdCS8CoPQk7brW-1mV8FIGYtUeSMBRlY9Oh-3nE,296172
199
- cmdbox/web/assets/cmdbox/list_cmd.js,sha256=k9vSO046ohr1gTkNfjtv5S6YvcjbFcPQ5DB6BAx_ANg,30154
199
+ cmdbox/web/assets/cmdbox/list_cmd.js,sha256=a_v1ZOzXzAOaVMZKJmAE8s02oo6ccWBvi8uN2cD6EMw,30589
200
200
  cmdbox/web/assets/cmdbox/list_pipe.js,sha256=mlzISyZUG90GbE0gxMzWpwZhzhojxqvft2gne6Vajco,11218
201
201
  cmdbox/web/assets/cmdbox/main.js,sha256=K-tBnZlCpy__juT_HHKfvHzhNJykAjva7LUBJX45XzM,4997
202
202
  cmdbox/web/assets/cmdbox/open_capture.js,sha256=W4IQlOYLN4Y8OaS8Xc5yp-BRlm82TVjujChr3hJKS0M,709
@@ -204,7 +204,7 @@ cmdbox/web/assets/cmdbox/open_output_json.js,sha256=4q7mCdVmSzFudlTlW9MuIJ1-f-kD
204
204
  cmdbox/web/assets/cmdbox/result.js,sha256=DHCYMXmuN9UQjwCGJfHE6rmHD0rSwRIxDqPQWHcdl24,3210
205
205
  cmdbox/web/assets/cmdbox/signin.js,sha256=x2QOTRVdTwy9bAbOD86ZYBB0yIRAjJZ32vNVQCCyWAA,3680
206
206
  cmdbox/web/assets/cmdbox/users.js,sha256=RsmMzLZohbU0u3GsXv7W64691se4TKUrhZxISAocc1I,29215
207
- cmdbox/web/assets/cmdbox/view_raw.js,sha256=n0jfz_NjfHEt0In3Z3eT9iNMorkoZcdpfnKHz93U2Io,2686
207
+ cmdbox/web/assets/cmdbox/view_raw.js,sha256=pEPGZD10T3vrjnb-uZupPIhUNMJZu8o6DUucjjdDFQk,2657
208
208
  cmdbox/web/assets/cmdbox/view_result.js,sha256=FCT7uIxFp6TKXmGldjdQo2-SNkhyRtAAMBQ2qF54HVQ,6954
209
209
  cmdbox/web/assets/encodingjs/LICENSE.txt,sha256=mBdECJD6rOMBa4VSrrJFzs67vFDvGuMPVtxvvDbgi9o,1070
210
210
  cmdbox/web/assets/encodingjs/encoding.js,sha256=pMUL__JEPZ0hHv1iH1kt-zwfDwJcDzzrD1JpdhEKBy8,297288
@@ -248,9 +248,9 @@ cmdbox/web/assets/tree-menu/image/file.png,sha256=Uw4zYkHyuoZ_kSVkesHAeSeA_g9_LP
248
248
  cmdbox/web/assets/tree-menu/image/folder-close.png,sha256=TcgsKTBBF2ejgzekOEDBFBxsJf-Z5u0x9IZVi4GBR-I,284
249
249
  cmdbox/web/assets/tree-menu/image/folder-open.png,sha256=DT7y1GRK4oXJkFvqTN_oSGM5ZYARzPvjoCGL6wqkoo0,301
250
250
  cmdbox/web/assets/tree-menu/js/tree-menu.js,sha256=-GkZxI7xzHuXXHYQBHAVTcuKX4TtoiMuyIms6Xc3pxk,1029
251
- cmdbox-0.5.0.6.dist-info/LICENSE,sha256=sBzzPc5v-5LBuIFi2V4olsnoVg-3EBI0zRX5r19SOxE,1117
252
- cmdbox-0.5.0.6.dist-info/METADATA,sha256=EAA5qNNWYw5jC_1PbXoJIivIo07qDq4kvHBq4hUwch4,24050
253
- cmdbox-0.5.0.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
254
- cmdbox-0.5.0.6.dist-info/entry_points.txt,sha256=PIoRz-tr503YwdMmd6nxuSn2dDltf4cUMVs98E9WgaA,48
255
- cmdbox-0.5.0.6.dist-info/top_level.txt,sha256=eMEkD5jn8_0PkCAL8h5xJu4qAzF2O8Wf3vegFkKUXR4,7
256
- cmdbox-0.5.0.6.dist-info/RECORD,,
251
+ cmdbox-0.5.0.8.dist-info/LICENSE,sha256=sBzzPc5v-5LBuIFi2V4olsnoVg-3EBI0zRX5r19SOxE,1117
252
+ cmdbox-0.5.0.8.dist-info/METADATA,sha256=mNEz-XXmfFzRSjdGTKCEcImtwsBdcd3-Yjln1FdXyzo,24050
253
+ cmdbox-0.5.0.8.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
254
+ cmdbox-0.5.0.8.dist-info/entry_points.txt,sha256=PIoRz-tr503YwdMmd6nxuSn2dDltf4cUMVs98E9WgaA,48
255
+ cmdbox-0.5.0.8.dist-info/top_level.txt,sha256=eMEkD5jn8_0PkCAL8h5xJu4qAzF2O8Wf3vegFkKUXR4,7
256
+ cmdbox-0.5.0.8.dist-info/RECORD,,