Metadata-Version: 2.1
Name: shell2http
Version: 2.8
Summary: Executing shell commands via HTTP server
Home-page: https://github.com/GitHub30/shell2http
Author: Tomofumi Inoue
Author-email: funaox@gmail.com
License: MIT
Project-URL: Bug Tracker, https://github.com/GitHub30/shell2http/issues
Keywords: shell2http subprocess python
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Utilities
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE

[![Python](https://img.shields.io/pypi/pyversions/shell2http.svg)](https://badge.fury.io/py/shell2http)
[![PyPI](https://badge.fury.io/py/shell2http.svg)](https://badge.fury.io/py/shell2http)

# shell2http
HTTP-server to execute shell commands. Designed for development, prototyping or remote control. Settings through two command line arguments, path and shell command. By default bind to :8080. with [shell2udp](https://github.com/GitHub30/shell2udp) it runs with minimal latency.

# Usage

```bash
shell2http [-h] [-form] [-no-index] [-add-exit] [-output] [-sse] [-p PORT] ["shell command" for /] /path "shell command" /path2 "shell command2" ...

positional arguments:
  command

optional arguments:
  -h, --help            show this help message and exit
  -form                 parse query into environment vars
  -no-index             do not generate index page
  -add-exit             add /exit command
  -output               send back output
  -sse                  use Server Sent Events
  -p PORT, --port PORT
```

# Install

```bash
pip install shell2http
```

# Examples

## Windows

stop http server with `Ctrl` + `Pause/Break`

```powershell
shell2http "shutdown -s -t 0"
```

```powershell
shell2http "shutdown -s -t 0" /beep "powershell -c echo `a"
```

```powershell
shell2http --port 3306 /beep "powershell -command [Console]::Beep(440,2000)"
```

http://localhost:8080/form?from=10&to=100

```bash
shell2http -output -form /form 'echo %v_from%, %v_to%'
```

## Linux

```bash
shell2http 'notify-send Hello root'
```


```bash
shell2http -p3000 'notify-send Hello root' /path 'canberra-gtk-play -i desktop-login'
```

```bash
shell2http -p3000 /path 'canberra-gtk-play -i desktop-login'
```

```bash
shell2http -output /info 'uname -a'
```

```bash
shell2http -output -sse /ping 'ping -c4 8.8.8.8'
```

```bash
shell2http -add-exit pwd
```

http://localhost:8080/form?from=10&to=100

```bash
shell2http -output -form /form 'echo $v_from, $v_to'
```

# Acknowledgements

https://github.com/msoap/shell2http

https://github.com/eshaan7/Flask-Shell2HTTP
