Conscript控制台脚本,您的瑞士军刀。
项目描述
Conscript:瑞士军刀式的控制台脚本。
Conscript提供了一种控制台脚本,您可以使用它方便地在一个虚拟环境中公开所有其他控制台脚本。在传统的虚拟环境中,这几乎没有用处。在zipapp中,它给您提供了类似于BusyBox的功能。
使用
要创建一个BusyBox,只需将conscript
添加到您的依赖项中,并将应用程序主入口点设置为conscript
控制台脚本。
示例
示例可能是演示Conscript实用性的最佳方式。两者Pex和Shiv都是创建带有第三方依赖项的zipapp的流行工具;因此,它们提供了简洁的示例。
Pex
- 创建BusyBox PEX zipapp
$ pex cowsay fortune conscript --script conscript --output-file speak
- 检查可用的嵌入式应用程序
$ ./speak -h usage: speak [-h] [PROGRAM] A speak busy box. positional arguments: PROGRAM The program to execute. The following programs are available: + cowsay + fortune optional arguments: -h, --help Show this help message and exit.
- 运行嵌入式应用程序
$ ./speak cowsay "Conscript is my Swiss Army Knife!" _________________________________ | Conscript is my Swiss Army Knife! | ================================= \ \ ^__^ (oo)\_______ (__)\ )\/\ ||----w | || ||
- 或另一个
$ ./speak fortune -h Usage: speak [OPTIONS] [fortune_file] Options: -h, --help show this help message and exit -V, --version Show version and exit. If fortune_file is omitted, fortune looks at the FORTUNE_FILE environment variable for the path. $ ./speak fortune /usr/share/fortune/science Nondeterminism means never having to say you are wrong.
- 通过符号链接定位嵌入式应用程序
$ ln -s speak cowsay $ ./cowsay Nifty. ______ | Nifty. | ====== \ \ ^__^ (oo)\_______ (__)\ )\/\ ||----w | || ||
Shiv
Conscript 暴露的功能与 Pex 示例中的相同,因此本例仅简化为基本内容。主要区别在于,Shiv 没有完全隔离 zipapp 中的请求依赖和偶然依赖,因此我们看到的可用控制台脚本比 Pex 情况更多。
- 创建 BusyBox shiv zipapp
$ shiv cowsay fortune conscript --python '/usr/bin/env python' --console-script conscript --output-file say Collecting cowsay Using cached cowsay-4.0-py2.py3-none-any.whl (24 kB) Collecting fortune Using cached fortune-1.1.0-py2.py3-none-any.whl (5.9 kB) Collecting conscript Using cached conscript-0.1.1-py2.py3-none-any.whl (7.5 kB) Collecting grizzled-python>=1.0 Using cached grizzled_python-2.2.0-py2.py3-none-any.whl (36 kB) Installing collected packages: grizzled-python, fortune, cowsay, conscript Successfully installed conscript-0.1.1 cowsay-4.0 fortune-1.1.0 grizzled-python-2.2.0
- 使用它
$ ./say -h usage: say [-h] [PROGRAM] A say busy box. positional arguments: PROGRAM The program to execute. The following programs are available: + cowsay + easy_install + easy_install-3.8 + fortune + pip + pip3 + pip3.8 + shiv + shiv-info optional arguments: -h, --help Show this help message and exit. $ ./say cowsay --version 4.0