pywebexec 1.2.4__py3-none-any.whl → 1.2.6__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.
- pywebexec/pywebexec.py +3 -3
- pywebexec/static/css/style.css +1 -2
- pywebexec/static/js/script.js +1 -2
- pywebexec/templates/index.html +0 -1
- pywebexec/version.py +2 -2
- {pywebexec-1.2.4.dist-info → pywebexec-1.2.6.dist-info}/METADATA +2 -2
- {pywebexec-1.2.4.dist-info → pywebexec-1.2.6.dist-info}/RECORD +11 -11
- {pywebexec-1.2.4.dist-info → pywebexec-1.2.6.dist-info}/LICENSE +0 -0
- {pywebexec-1.2.4.dist-info → pywebexec-1.2.6.dist-info}/WHEEL +0 -0
- {pywebexec-1.2.4.dist-info → pywebexec-1.2.6.dist-info}/entry_points.txt +0 -0
- {pywebexec-1.2.4.dist-info → pywebexec-1.2.6.dist-info}/top_level.txt +0 -0
pywebexec/pywebexec.py
CHANGED
@@ -277,6 +277,8 @@ def parseargs():
|
|
277
277
|
sys.exit(1)
|
278
278
|
if not os.path.exists(COMMAND_STATUS_DIR):
|
279
279
|
os.makedirs(COMMAND_STATUS_DIR)
|
280
|
+
if not os.path.exists(CONFDIR):
|
281
|
+
os.mkdir(CONFDIR, mode=0o700)
|
280
282
|
if args.gencert:
|
281
283
|
hostname = resolve_hostname(gethostname())
|
282
284
|
args.cert = args.cert or f"{CONFDIR}/pywebexec.crt"
|
@@ -531,7 +533,7 @@ def list_commands():
|
|
531
533
|
status = read_command_status(command_id)
|
532
534
|
if status:
|
533
535
|
try:
|
534
|
-
params = shlex.join(status
|
536
|
+
params = shlex.join(status.get('params', []))
|
535
537
|
except AttributeError:
|
536
538
|
params = " ".join([shlex.quote(p) if " " in p else p for p in status['params']])
|
537
539
|
command = status.get('command', '-') + ' ' + params
|
@@ -582,8 +584,6 @@ def list_executables():
|
|
582
584
|
|
583
585
|
def main():
|
584
586
|
basef = f"{CONFDIR}/pywebexec_{args.listen}:{args.port}"
|
585
|
-
if not os.path.exists(CONFDIR):
|
586
|
-
os.mkdir(CONFDIR, mode=0o700)
|
587
587
|
if args.action == "start":
|
588
588
|
return start_gunicorn(daemon=True, baselog=basef)
|
589
589
|
if args.action:
|
pywebexec/static/css/style.css
CHANGED
@@ -40,12 +40,11 @@ select { /* Safari bug */
|
|
40
40
|
background: #111;
|
41
41
|
padding: 10px;
|
42
42
|
border: 1px solid #ccc;
|
43
|
-
font-family: monospace;
|
44
43
|
border-radius: 10px;
|
45
44
|
overflow-y: hidden;
|
46
45
|
}
|
47
46
|
.copy-icon { cursor: pointer; }
|
48
|
-
.monospace { font-family: monospace; }
|
47
|
+
.monospace { font-family: Consolas NF, monospace; }
|
49
48
|
.copied { color: green; margin-left: 5px; }
|
50
49
|
button {
|
51
50
|
-webkit-appearance: none;
|
pywebexec/static/js/script.js
CHANGED
@@ -73,8 +73,7 @@ async function fetchCommands() {
|
|
73
73
|
<td>${formatTime(command.start_time)}</td>
|
74
74
|
<td>${command.status === 'running' ? formatDuration(command.start_time, new Date().toISOString()) : formatDuration(command.start_time, command.end_time)}</td>
|
75
75
|
<td>${command.command.replace(/^\.\//, '')}</td>
|
76
|
-
<td>${command.exit_code}</td>
|
77
|
-
<td><span class="status-icon status-${command.status}"></span>${command.status}</td>
|
76
|
+
<td><span class="status-icon status-${command.status}"></span>${command.status}${command.status === 'failed' ? ` (${command.exit_code})` : ''}</td>
|
78
77
|
<td>
|
79
78
|
${command.status === 'running' ? `<button onclick="stopCommand('${command.command_id}')">Stop</button>` : `<button onclick="relaunchCommand('${command.command_id}')">Run</button>`}
|
80
79
|
</td>
|
pywebexec/templates/index.html
CHANGED
pywebexec/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: pywebexec
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.6
|
4
4
|
Summary: Simple Python HTTP Exec Server
|
5
5
|
Home-page: https://github.com/joknarf/pywebexec
|
6
6
|
Author: Franck Jouvanceau
|
@@ -83,7 +83,7 @@ $ pywebexec
|
|
83
83
|
```
|
84
84
|
|
85
85
|
* Launch commands with params/view live output/Status using browser
|
86
|
-

|
87
87
|
|
88
88
|
all commands output / statuses are available in the executables directory in subdirectory `.web_status`
|
89
89
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
pywebexec/__init__.py,sha256=4spIsVaF8RJt8S58AG_wWoORRNkws9Iwqprj27C3ljM,99
|
2
|
-
pywebexec/pywebexec.py,sha256=
|
3
|
-
pywebexec/version.py,sha256=
|
4
|
-
pywebexec/static/css/style.css,sha256=
|
2
|
+
pywebexec/pywebexec.py,sha256=nVc6fm5jGgPLc4bv4EMVaR84qJN-yy8q9teFOD_LcRE,22665
|
3
|
+
pywebexec/version.py,sha256=lMW_5tymyxUCLB-4LUHlm-nxaXdxL9eMN-CPoWJeaIw,411
|
4
|
+
pywebexec/static/css/style.css,sha256=mKatR7_j_byear3GNtYMC_4e9XtXirZDL9yGeZRsDQ0,3592
|
5
5
|
pywebexec/static/css/xterm.css,sha256=gy8_LGA7Q61DUf8ElwFQzHqHMBQnbbEmpgZcbdgeSHI,5383
|
6
6
|
pywebexec/static/images/aborted.svg,sha256=_mP43hU5QdRLFZIknBgjx-dIXrHgQG23-QV27ApXK2A,381
|
7
7
|
pywebexec/static/images/copy.svg,sha256=d9OwtGh5GzzZHzYcDrLfNxZYLth1Q64x7bRyYxu4Px0,622
|
@@ -10,16 +10,16 @@ pywebexec/static/images/failed.svg,sha256=ADZ7IKrUyOXtqpivnz3VcH0-Wru-I5MOi3OJAk
|
|
10
10
|
pywebexec/static/images/favicon.svg,sha256=ti80IfuDZwIvQcmJxkOeUaB1iMsiyOPmQmVO-h0y1IU,1126
|
11
11
|
pywebexec/static/images/running.gif,sha256=iYuzQGkMxrakSIwt6gPieKCImGZoSAHmU5MUNZa7cpw,25696
|
12
12
|
pywebexec/static/images/success.svg,sha256=PJDcCSTevJh7rkfSFLtc7P0pbeh8PVQBS8DaOLQemmc,489
|
13
|
-
pywebexec/static/js/script.js,sha256=
|
13
|
+
pywebexec/static/js/script.js,sha256=rvAXV7z1kzThVyeAdX55a7ss7Eemr6ibAdvOV0cFukI,9979
|
14
14
|
pywebexec/static/js/xterm/LICENSE,sha256=EU1P4eXTull-_T9I80VuwnJXubB-zLzUl3xpEYj2T1M,1083
|
15
15
|
pywebexec/static/js/xterm/ansi_up.min.js,sha256=KNGV0vEr30hNqKQimTAvGVy-icD5A1JqMQTtvYtKR2Y,13203
|
16
16
|
pywebexec/static/js/xterm/xterm-addon-fit.js,sha256=Pprm9pZe4SadVXS5Bc8b9VnC9Ex4QlWwA0pxOH53Gck,1460
|
17
17
|
pywebexec/static/js/xterm/xterm.js,sha256=Bzka76jZwEhVt_LlS0e0qMw7ryGa1p5qfxFyeohphBo,283371
|
18
18
|
pywebexec/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
pywebexec/templates/index.html,sha256=
|
20
|
-
pywebexec-1.2.
|
21
|
-
pywebexec-1.2.
|
22
|
-
pywebexec-1.2.
|
23
|
-
pywebexec-1.2.
|
24
|
-
pywebexec-1.2.
|
25
|
-
pywebexec-1.2.
|
19
|
+
pywebexec/templates/index.html,sha256=3tQwVTcyK_r5BW1gHViuza59Gh-4pUZQQl7jqfvjNMY,1655
|
20
|
+
pywebexec-1.2.6.dist-info/LICENSE,sha256=gRJf0JPT_wsZJsUGlWPTS8Vypfl9vQ1qjp6sNbKykuA,1064
|
21
|
+
pywebexec-1.2.6.dist-info/METADATA,sha256=F2qZ480h1eB7Y3qnkF3MCgxsbzQLHr0wlDH6wS8EziE,6936
|
22
|
+
pywebexec-1.2.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
23
|
+
pywebexec-1.2.6.dist-info/entry_points.txt,sha256=l52GBkPCXRkmlHfEyoVauyfBdg8o-CAtC8qQpOIjJK0,55
|
24
|
+
pywebexec-1.2.6.dist-info/top_level.txt,sha256=vHoHyzngrfGdm_nM7Xn_5iLmaCrf10XO1EhldgNLEQ8,10
|
25
|
+
pywebexec-1.2.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|