Compare commits

...

2 Commits

Author SHA1 Message Date
NotAFile 0fc052efe0 add more possible todos 2021-09-29 18:01:12 +02:00
NotAFile 750c8d3e28 add non-raw jq option 2021-09-29 17:37:36 +02:00
2 changed files with 17 additions and 4 deletions

View File

@ -44,6 +44,13 @@ if __name__ == "__main__":
- [ ] xargs (only prints) - [ ] xargs (only prints)
- [x] shell commands (no stderr capture) - [x] shell commands (no stderr capture)
- [x] jq via bindings - [x] jq via bindings
- [ ] grep
- [ ] head/tail - [ ] head/tail
- [ ] sort - [ ] sort
- [ ] basic shell loops - [ ] basic shell loops
- [ ] shell globs
- [ ] file operations (mv, cp, rm, ls)
- [ ] cat
- [ ] sed
- [ ] trim
- [ ] subshell

View File

@ -98,10 +98,16 @@ class JqMapper(AbstractMapper):
return ["json", "bytes"] return ["json", "bytes"]
def generate(self, input_name: str, output_formats: List[str]) -> ShellMapping: def generate(self, input_name: str, output_formats: List[str]) -> ShellMapping:
# TODO: remove join hack with proper datatype analysis if self._parsed.raw_output:
code = dedent(f"""\ # TODO: remove join hack with proper datatype analysis
filtered = "\\n".join(jq.all({self._parsed.filter!r}, text={input_name})) code = dedent(f"""\
""") filtered = "\\n".join(jq.all({self._parsed.filter!r}, text={input_name}))
""")
else:
code = dedent(f"""\
filtered = jq.text({self._parsed.filter!r}, text={input_name})
""")
return ShellMapping(code=code, output_name="filtered", output_format="str", input_format="", imports=["import jq"]) return ShellMapping(code=code, output_name="filtered", output_format="str", input_format="", imports=["import jq"])