Run command as REPL-environment
Project description
ptrepl
About
Make REPL out of any bash command
- has bash completion
- has vi mode
- has PS1 parsing(experimental)
- stores history in XDG_DATA_HOME/ptrepl/history
- bash like history expansion
- list history
- command mode
- aliases
Installation
Requires python>=3.6
, click
, prompt_toolkit>=2.0.7
, pygments
pip install ptrepl
Usage
Basic Usage
$ ptrepl --help
Usage: ptrepl [OPTIONS] COMMAND
Options:
--prompt TEXT Override prompt
--help Show this message and exit.
$ ptrepl git
$ git >
# to call "git status"
$ git > status
# if you need execute some other bash command see system mode below
Custom prompt command
$ ptrepl git --prompt g
$ g >
Multiword command
$ ptrepl "echo prefix"
$ echo prefix > 1
echo prefix 1
Config
Place settings file in XDG_CONFIG_HOME/ptrepl/config.json
{
"settings": {
"PARSE_PS1": true,
"VI_MODE": true,
"PREPEND_SPACE": true,
"LOCAL_SHADA": true
},
"alias": {
"git st": "git status"
}
}
Available settings
- EXIT_COMMAND - change exit command
- VI_MODE - enable VI mode
- VI_EDIT_MODE - set VI edit mode prompt string
- VI_NORMAL_MODE - set VI normal mode prompt string
- PARSE_PS1 {experimental} - will try to adgust ptrepl's prompt according to your PS1 setting
- LOCAL_SHADA - store shada(history) in LOCAL_SHADA_PATH
- LOCAL_SHADA_PATH - path to local shada
Default settings
{
"EXIT_COMMAND": "exit",
"VI_MODE": false,
"VI_EDIT_MODE": ":",
"VI_NORMAL_MODE": "+",
"PARSE_PS1": false,
"LOCAL_SHADA": false,
"LOCAL_SHADA_PATH": ".direnv/ptrepl/",
}
Features
Parsing PS1
Here is how my bash prompt(PS1) looks like by default
{ptrepl} ~/Development/Python/ptrepl [master] |19:18:36 07-Feb-18|
+ ❯ ptrepl git
{ptrepl} ~/Development/Python/ptrepl [master] |19:20:15 07-Feb-18|
+ git ❯
Completion
$ ptrepl git
$ git > st (press TAB)
# result
$ git > st
status
stage
stash
System mode
$ ptrepl git
$ git > (press Escape + !)
# result
# you could enter your shell commands here
Shell command: ls
Command mode
$ ptrepl git
$ git > (press Escape + :)
# result
# you could enter your command mode commands here
# to list history
Command mode: history
Bash like history expansion
$ ptrepl git
$ git > status
# repeat last command
$ git > !!
# repeat 10th command
$ git > !10
# repeat 10th command from bottom of history stack
$ git > !-10
Bash like aliases
$ ptrepl git
$ git > (press Escape + :)
# you could enter your command mode commands here
# to list alias
Command mode: alias
alias "git st"="git status"
$ git > st
Similar projects
Written in Ruby
https://github.com/defunkt/repl
Written in Bash
https://github.com/joh6nn/shrepl
Written in Python
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ptrepl-0.8.4.tar.gz
(18.8 kB
view hashes)
Built Distribution
ptrepl-0.8.4-py3-none-any.whl
(21.4 kB
view hashes)