pywebexec 1.2.4__tar.gz → 1.2.6__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {pywebexec-1.2.4/pywebexec.egg-info → pywebexec-1.2.6}/PKG-INFO +2 -2
- {pywebexec-1.2.4 → pywebexec-1.2.6}/README.md +1 -1
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/pywebexec.py +3 -3
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/css/style.css +1 -2
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/js/script.js +1 -2
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/templates/index.html +0 -1
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/version.py +2 -2
- {pywebexec-1.2.4 → pywebexec-1.2.6/pywebexec.egg-info}/PKG-INFO +2 -2
- {pywebexec-1.2.4 → pywebexec-1.2.6}/.github/workflows/python-publish.yml +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/.gitignore +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/LICENSE +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pyproject.toml +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/__init__.py +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/css/xterm.css +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/images/aborted.svg +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/images/copy.svg +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/images/copy_ok.svg +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/images/failed.svg +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/images/favicon.svg +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/images/running.gif +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/images/success.svg +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/js/xterm/LICENSE +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/js/xterm/ansi_up.min.js +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/js/xterm/xterm-addon-fit.js +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/static/js/xterm/xterm.js +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec/templates/__init__.py +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec.egg-info/SOURCES.txt +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec.egg-info/dependency_links.txt +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec.egg-info/entry_points.txt +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec.egg-info/requires.txt +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/pywebexec.egg-info/top_level.txt +0 -0
- {pywebexec-1.2.4 → pywebexec-1.2.6}/setup.cfg +0 -0
@@ -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
|
-
![
|
86
|
+
![pywebexecnew5](https://github.com/user-attachments/assets/cb443a6f-e364-4302-98de-f0330d763289)
|
87
87
|
|
88
88
|
all commands output / statuses are available in the executables directory in subdirectory `.web_status`
|
89
89
|
|
@@ -21,7 +21,7 @@ $ pywebexec
|
|
21
21
|
```
|
22
22
|
|
23
23
|
* Launch commands with params/view live output/Status using browser
|
24
|
-
![
|
24
|
+
![pywebexecnew5](https://github.com/user-attachments/assets/cb443a6f-e364-4302-98de-f0330d763289)
|
25
25
|
|
26
26
|
all commands output / statuses are available in the executables directory in subdirectory `.web_status`
|
27
27
|
|
@@ -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:
|
@@ -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;
|
@@ -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>
|
@@ -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
|
-
![
|
86
|
+
![pywebexecnew5](https://github.com/user-attachments/assets/cb443a6f-e364-4302-98de-f0330d763289)
|
87
87
|
|
88
88
|
all commands output / statuses are available in the executables directory in subdirectory `.web_status`
|
89
89
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|