Python to shell script transcompiler
Sherlock.py is transpiler that translate python to shell script language.
Shell script is well known script language which is used in most of unix-like OS. Shell script lanuage garuntee to run in most unix-like OS. So many software developers are using this language when they program install script or configuration script. Because this language is really old, There are several problems. and it is hard to maintain program which is writted by Shell script language.
$ pip install sherlock.py
Sherlock.py supports python version over 2.6 or 3.3. and support linux and macOS. If there is error in install please write issue.
usage: sherlock [-h] [-o output] [-c] [-v] [--version] [file | command] Python to bash trans-compiler. positional arguments: [file | command] program read from script file optional arguments: -h, --help show this help message and exit -o output output file path -c, --command program passed in as string -v, --verbose program run in verbose mode --version show program's version number and exit
Following is basic usage.
$ sherlock target.py
Using this command, target.py file is translated into shell sciprt. after, it is automatically run with sh. We can find out bug from the running result.
$ sherlock target.py -o output.sh
Using -o flag, you can save sherlock result in file. In this case script isn’t run automatically.
$ sherlock -c "echo 'Hello World.'"
Using -c flag, input command is immediately translated to shell script language and executed.
If you want to details. Please check sample codes
You can use general shell command importing from sherlock.cmd. When you import package, it check user already installed command and create wrap function which return stdout output.
from sherlock.cmd import ls ls('-al')
In shell script, you can combine command with | operator. To do same thing in python, Sherlock.py support pipe function.
from sherlock.cmd import wc pipe(print('./test'), wc('-c'))
support windows batch and powershell script
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.