b7e7ab2336 | ||
---|---|---|
hellpipe | ||
.gitignore | ||
README.md | ||
pyproject.toml |
README.md
hellpipe
wip: generate python scripts from (s)hell pipelines
Intended to be used with a shell plugin to make those oneliners that get out of hand more manageable.
Example
curl "https://httpbin.org/get?test=123" | jq ".headers|keys[]" -r | xargs -L 1 echo
import requests
import subprocess
import sys
import shlex
# generated with hellpipe
def main():
params = {"test": ["123"]}
res = requests.get("https://httpbin.org/get", params=params).text
proc = subprocess.Popen(
["jq", ".headers|keys[]", "-r"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=sys.stderr,
)
(stdout, _) = proc.communicate(res.encode("utf-8"))
out_jq = stdout.decode("utf-8")
for i in shlex.split(out_jq, posix=True):
print(i) # TODO
if __name__ == "__main__":
main()
Currently Supported Mappings
- curl -> requests (very basic)
- xargs (only prints)
- shell commands (no stderr capture)
- jq via bindings
- grep
- head/tail
- sort
- basic shell loops
- shell globs
- file operations (mv, cp, rm, ls)
- cat
- sed
- trim
- subshell