pywebexec 1.4.12__py3-none-any.whl → 1.4.13__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 +6 -5
- pywebexec/static/css/style.css +3 -5
- pywebexec/static/js/script.js +1 -3
- pywebexec/version.py +2 -2
- {pywebexec-1.4.12.dist-info → pywebexec-1.4.13.dist-info}/METADATA +9 -3
- {pywebexec-1.4.12.dist-info → pywebexec-1.4.13.dist-info}/RECORD +10 -10
- {pywebexec-1.4.12.dist-info → pywebexec-1.4.13.dist-info}/LICENSE +0 -0
- {pywebexec-1.4.12.dist-info → pywebexec-1.4.13.dist-info}/WHEEL +0 -0
- {pywebexec-1.4.12.dist-info → pywebexec-1.4.13.dist-info}/entry_points.txt +0 -0
- {pywebexec-1.4.12.dist-info → pywebexec-1.4.13.dist-info}/top_level.txt +0 -0
pywebexec/pywebexec.py
CHANGED
@@ -44,7 +44,7 @@ app.config['LDAP_BIND_PASSWORD'] = os.environ.get('PYWEBEXEC_LDAP_BIND_PASSWORD'
|
|
44
44
|
# Directory to store the command status and output
|
45
45
|
CWD = os.getcwd()
|
46
46
|
COMMAND_STATUS_DIR = '.web_status'
|
47
|
-
CONFDIR = os.path.expanduser("~/")
|
47
|
+
CONFDIR = os.path.expanduser("~/").rstrip('/')
|
48
48
|
if os.path.isdir(f"{CONFDIR}/.config"):
|
49
49
|
CONFDIR += '/.config'
|
50
50
|
CONFDIR += "/.pywebexec"
|
@@ -311,7 +311,7 @@ def parseargs():
|
|
311
311
|
"-p", "--port", type=int, default=8080, help="HTTP server listen port"
|
312
312
|
)
|
313
313
|
parser.add_argument(
|
314
|
-
"-d", "--dir", type=str,
|
314
|
+
"-d", "--dir", type=str, help=f"Serve target directory. default {CONFDIR}"
|
315
315
|
)
|
316
316
|
parser.add_argument(
|
317
317
|
"-t",
|
@@ -328,6 +328,9 @@ def parseargs():
|
|
328
328
|
choices=["start","stop","restart","status","shareterm", "term"])
|
329
329
|
|
330
330
|
args = parser.parse_args()
|
331
|
+
if not os.path.exists(CONFDIR):
|
332
|
+
os.mkdir(CONFDIR, mode=0o700)
|
333
|
+
args.dir = args.dir or CONFDIR
|
331
334
|
if os.path.isdir(args.dir):
|
332
335
|
try:
|
333
336
|
os.chdir(args.dir)
|
@@ -338,9 +341,7 @@ def parseargs():
|
|
338
341
|
print(f"Error: {args.dir} not found", file=sys.stderr)
|
339
342
|
sys.exit(1)
|
340
343
|
if not os.path.exists(COMMAND_STATUS_DIR):
|
341
|
-
os.
|
342
|
-
if not os.path.exists(CONFDIR):
|
343
|
-
os.mkdir(CONFDIR, mode=0o700)
|
344
|
+
os.mkdir(COMMAND_STATUS_DIR, mode=0o700)
|
344
345
|
if args.action == "term":
|
345
346
|
COMMAND_STATUS_DIR = f"{os.getcwd()}/{COMMAND_STATUS_DIR}"
|
346
347
|
sys.exit(start_term())
|
pywebexec/static/css/style.css
CHANGED
@@ -267,14 +267,12 @@ span {
|
|
267
267
|
width: 100%;
|
268
268
|
}
|
269
269
|
.popup-button {
|
270
|
-
background:
|
271
|
-
|
270
|
+
background-color: transparent;
|
271
|
+
background-image: url("/static/images/popup.svg");
|
272
272
|
cursor: pointer;
|
273
|
+
border: none;
|
273
274
|
padding: 0;
|
274
|
-
margin-left: 5px;
|
275
275
|
vertical-align: middle;
|
276
|
-
}
|
277
|
-
.popup-button img {
|
278
276
|
width: 16px;
|
279
277
|
height: 16px;
|
280
278
|
}
|
pywebexec/static/js/script.js
CHANGED
@@ -111,9 +111,7 @@ async function fetchCommands() {
|
|
111
111
|
${command.command.startsWith('term') ? '' : command.status === 'running' ? `<button onclick="stopCommand('${command.command_id}', event)">Stop</button>` : `<button onclick="relaunchCommand('${command.command_id}', event)">Run</button>`}
|
112
112
|
</td>
|
113
113
|
<td class="monospace outcol">
|
114
|
-
<button class="popup-button" onclick="openPopup('${command.command_id}', event)">
|
115
|
-
<img src="/static/images/popup.svg" alt="Popup">
|
116
|
-
</button>
|
114
|
+
<button class="popup-button" onclick="openPopup('${command.command_id}', event)"></button>
|
117
115
|
${command.last_output_line || ''}
|
118
116
|
</td>
|
119
117
|
`;
|
pywebexec/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: pywebexec
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.13
|
4
4
|
Summary: Simple Python HTTP Exec Server
|
5
5
|
Home-page: https://github.com/joknarf/pywebexec
|
6
6
|
Author: Franck Jouvanceau
|
@@ -76,8 +76,14 @@ $ pip install pywebexec
|
|
76
76
|
|
77
77
|
## Quick start
|
78
78
|
|
79
|
-
*
|
80
|
-
|
79
|
+
* share terminal
|
80
|
+
```shell
|
81
|
+
$ pywebexec shareterm
|
82
|
+
```
|
83
|
+
|
84
|
+
* serve executables
|
85
|
+
* put in a directory the scripts/commands/links to commands you want to expose
|
86
|
+
* start http server serving current directory executables listening on 0.0.0.0 port 8080
|
81
87
|
```shell
|
82
88
|
$ pywebexec -d <dir>
|
83
89
|
```
|
@@ -1,8 +1,8 @@
|
|
1
1
|
pywebexec/__init__.py,sha256=4spIsVaF8RJt8S58AG_wWoORRNkws9Iwqprj27C3ljM,99
|
2
|
-
pywebexec/pywebexec.py,sha256=
|
3
|
-
pywebexec/version.py,sha256=
|
2
|
+
pywebexec/pywebexec.py,sha256=KNRO31L0ArCxkS9Ph98YKzMumn0j41-ocr9TkQgKMmQ,26977
|
3
|
+
pywebexec/version.py,sha256=bhORB-auReBqhWH8Z8Dx1LQ8cW3mTgChFk4qt6yE3rs,413
|
4
4
|
pywebexec/static/css/Consolas NF.ttf,sha256=DJEOzF0eqZ-kxu3Gs_VE8X0NJqiobBzmxWDGpdgGRxI,1313900
|
5
|
-
pywebexec/static/css/style.css,sha256=
|
5
|
+
pywebexec/static/css/style.css,sha256=cGJHPFj23SQ_bFpesfUaFA3VFxhXtpRUOL_zzx3x_X8,5726
|
6
6
|
pywebexec/static/css/xterm.css,sha256=gy8_LGA7Q61DUf8ElwFQzHqHMBQnbbEmpgZcbdgeSHI,5383
|
7
7
|
pywebexec/static/images/aborted.svg,sha256=_mP43hU5QdRLFZIknBgjx-dIXrHgQG23-QV27ApXK2A,381
|
8
8
|
pywebexec/static/images/copy.svg,sha256=d9OwtGh5GzzZHzYcDrLfNxZYLth1Q64x7bRyYxu4Px0,622
|
@@ -15,7 +15,7 @@ pywebexec/static/images/running.gif,sha256=iYuzQGkMxrakSIwt6gPieKCImGZoSAHmU5MUN
|
|
15
15
|
pywebexec/static/images/success.svg,sha256=PJDcCSTevJh7rkfSFLtc7P0pbeh8PVQBS8DaOLQemmc,489
|
16
16
|
pywebexec/static/js/commands.js,sha256=8JDb3Q55EJOYf2Q9Uy6qEuqAnn1oGjM0RndgQ4aOjqo,7725
|
17
17
|
pywebexec/static/js/popup.js,sha256=i7BPBh6oS0Q6H528DwP6KwJ8CKh7ULwm1rLHSbyvDhk,4656
|
18
|
-
pywebexec/static/js/script.js,sha256=
|
18
|
+
pywebexec/static/js/script.js,sha256=x3YJn61YOpV5bSum3nrV7MRP7lMAAWv1-mhWBJen2nE,12161
|
19
19
|
pywebexec/static/js/xterm/LICENSE,sha256=EU1P4eXTull-_T9I80VuwnJXubB-zLzUl3xpEYj2T1M,1083
|
20
20
|
pywebexec/static/js/xterm/ansi_up.min.js,sha256=KNGV0vEr30hNqKQimTAvGVy-icD5A1JqMQTtvYtKR2Y,13203
|
21
21
|
pywebexec/static/js/xterm/xterm-addon-fit.js,sha256=Pprm9pZe4SadVXS5Bc8b9VnC9Ex4QlWwA0pxOH53Gck,1460
|
@@ -23,9 +23,9 @@ pywebexec/static/js/xterm/xterm.js,sha256=Bzka76jZwEhVt_LlS0e0qMw7ryGa1p5qfxFyeo
|
|
23
23
|
pywebexec/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
24
|
pywebexec/templates/index.html,sha256=DYtT555wSNhnFtzzHhPMWJireynCJNnAuTytpoORQeE,2321
|
25
25
|
pywebexec/templates/popup.html,sha256=T6_tAOUoA58sA1oxB5pb8i42RenoMdCsH8T86Gccb6Q,945
|
26
|
-
pywebexec-1.4.
|
27
|
-
pywebexec-1.4.
|
28
|
-
pywebexec-1.4.
|
29
|
-
pywebexec-1.4.
|
30
|
-
pywebexec-1.4.
|
31
|
-
pywebexec-1.4.
|
26
|
+
pywebexec-1.4.13.dist-info/LICENSE,sha256=gRJf0JPT_wsZJsUGlWPTS8Vypfl9vQ1qjp6sNbKykuA,1064
|
27
|
+
pywebexec-1.4.13.dist-info/METADATA,sha256=vbf7BnbahIuCrkt8wGfyAo25vU5PqIGHgaor4L8uV2Y,7801
|
28
|
+
pywebexec-1.4.13.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
29
|
+
pywebexec-1.4.13.dist-info/entry_points.txt,sha256=l52GBkPCXRkmlHfEyoVauyfBdg8o-CAtC8qQpOIjJK0,55
|
30
|
+
pywebexec-1.4.13.dist-info/top_level.txt,sha256=vHoHyzngrfGdm_nM7Xn_5iLmaCrf10XO1EhldgNLEQ8,10
|
31
|
+
pywebexec-1.4.13.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|