Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/buffet/plover_retro_stringop

Call arbitrary code on the last n words!
https://github.com/buffet/plover_retro_stringop

Last synced: 3 months ago
JSON representation

Call arbitrary code on the last n words!

Awesome Lists containing this project

README

        

# plover_retro_stringop

Run arbitrary code on the last n words!
This is inheritly unsafe and horrible, yay!

Complaints go to **[[redacted]]@[[redacted]].com**.

### Usage

`{:retro_stringop:N:EXPR}`, where `N` is the number of words (backwards) to work on and `EXPR` is the expression that constitutes the new text.
This has `text` as the entire string and `words` as an array of the individual words (already stripped, use `raw_words` for words including the spaces).

`{:retro_stringop_sh:N:EXPR}` does the same stuff, but calls `/bin/sh`, and provides the text as `TEXT` env var.

### Examples

- `{:retro_stringop:1:"(" + text + ")"}`: surround last word in parenthesis
- `{:retro_stringop:2:"(" + text + ")"}`: surround last two words in parenthesis
- `{:retro_stringop_sh:1:echo "$TEXT" | tee some-file.txt}`: log last word to some-file.txt (tee is used here to so that the word doesn't get deleted)
- `{:retro_stringop:1:text[::-1]}`: reverse the last word
- `{:retro_stringop_sh:1:cat "$TEXT"}`: read the last word as a filename, and read that file, replacing the filename with the content
- `{:retro_stringop:3:"".join([w.lower().capitalize() for w in words])}`: PascalCase the last 3 words