diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 11:07:18 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 11:07:18 +0000 |
commit | 175ea2f86fe4e946eab06f9875632cee2dbb7a4a (patch) | |
tree | 9acc53f40ae7b54edc36e6771ac399ec6f8366cd | |
parent | eb5fb77b36681256c9b1e2a028101338f81494df (diff) |
automatic import of python-shellescape
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-shellescape.spec | 300 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 302 insertions, 0 deletions
@@ -0,0 +1 @@ +/shellescape-3.8.1.tar.gz diff --git a/python-shellescape.spec b/python-shellescape.spec new file mode 100644 index 0000000..8eebdfb --- /dev/null +++ b/python-shellescape.spec @@ -0,0 +1,300 @@ +%global _empty_manifest_terminate_build 0 +Name: python-shellescape +Version: 3.8.1 +Release: 1 +Summary: Shell escape a string to safely use it as a token in a shell command (backport of cPython shlex.quote for Python versions 2.x & < 3.3) +License: MIT license +URL: https://github.com/chrissimpkins/shellescape +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/19/40/13b9e84bf04774365830cbed1bd95a989d5324a99d207bcb1619a6c517f2/shellescape-3.8.1.tar.gz +BuildArch: noarch + + +%description +# shellescape + +## Description + +The shellescape Python module defines the `shellescape.quote()` function that returns a shell-escaped version of a Python string. This is a backport of the `shlex.quote()` function from Python 3.8 that makes it accessible to users of Python 3 versions < 3.3 and all Python 2.x versions. + + +### quote(s) + +*From the Python documentation*: + +Return a shell-escaped version of the string s. The returned value is a string that can safely be used as one token in a shell command line, for cases where you cannot use a list. + +This idiom would be unsafe: + +```python +>>> filename = 'somefile; rm -rf ~' +>>> command = 'ls -l {}'.format(filename) +>>> print(command) # executed by a shell: boom! +ls -l somefile; rm -rf ~ +``` + +`quote()` lets you plug the security hole: + +```python +>>> command = 'ls -l {}'.format(quote(filename)) +>>> print(command) +ls -l 'somefile; rm -rf ~' +>>> remote_command = 'ssh home {}'.format(quote(command)) +>>> print(remote_command) +ssh home 'ls -l '"'"'somefile; rm -rf ~'"'"'' +``` + +The quoting is compatible with UNIX shells and with `shlex.split()`: + +```python +>>> remote_command = split(remote_command) +>>> remote_command +['ssh', 'home', "ls -l 'somefile; rm -rf ~'"] +>>> command = split(remote_command[-1]) +>>> command +['ls', '-l', 'somefile; rm -rf ~'] +``` + + +## Usage + +Include `shellescape` in your project setup.py file `install_requires` dependency definition list: + +```python +setup( + ... + install_requires=['shellescape'], + ... +) +``` + +Then import the `quote` function into your module(s) and use it as needed: + +```python +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from shellescape import quote + +filename = "somefile; rm -rf ~" +escaped_shell_command = 'ls -l {}'.format(quote(filename)) +``` + +## License + +[LICENSE](https://github.com/chrissimpkins/shellescape/blob/master/docs/LICENSE) + + + + + + +%package -n python3-shellescape +Summary: Shell escape a string to safely use it as a token in a shell command (backport of cPython shlex.quote for Python versions 2.x & < 3.3) +Provides: python-shellescape +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-shellescape +# shellescape + +## Description + +The shellescape Python module defines the `shellescape.quote()` function that returns a shell-escaped version of a Python string. This is a backport of the `shlex.quote()` function from Python 3.8 that makes it accessible to users of Python 3 versions < 3.3 and all Python 2.x versions. + + +### quote(s) + +*From the Python documentation*: + +Return a shell-escaped version of the string s. The returned value is a string that can safely be used as one token in a shell command line, for cases where you cannot use a list. + +This idiom would be unsafe: + +```python +>>> filename = 'somefile; rm -rf ~' +>>> command = 'ls -l {}'.format(filename) +>>> print(command) # executed by a shell: boom! +ls -l somefile; rm -rf ~ +``` + +`quote()` lets you plug the security hole: + +```python +>>> command = 'ls -l {}'.format(quote(filename)) +>>> print(command) +ls -l 'somefile; rm -rf ~' +>>> remote_command = 'ssh home {}'.format(quote(command)) +>>> print(remote_command) +ssh home 'ls -l '"'"'somefile; rm -rf ~'"'"'' +``` + +The quoting is compatible with UNIX shells and with `shlex.split()`: + +```python +>>> remote_command = split(remote_command) +>>> remote_command +['ssh', 'home', "ls -l 'somefile; rm -rf ~'"] +>>> command = split(remote_command[-1]) +>>> command +['ls', '-l', 'somefile; rm -rf ~'] +``` + + +## Usage + +Include `shellescape` in your project setup.py file `install_requires` dependency definition list: + +```python +setup( + ... + install_requires=['shellescape'], + ... +) +``` + +Then import the `quote` function into your module(s) and use it as needed: + +```python +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from shellescape import quote + +filename = "somefile; rm -rf ~" +escaped_shell_command = 'ls -l {}'.format(quote(filename)) +``` + +## License + +[LICENSE](https://github.com/chrissimpkins/shellescape/blob/master/docs/LICENSE) + + + + + + +%package help +Summary: Development documents and examples for shellescape +Provides: python3-shellescape-doc +%description help +# shellescape + +## Description + +The shellescape Python module defines the `shellescape.quote()` function that returns a shell-escaped version of a Python string. This is a backport of the `shlex.quote()` function from Python 3.8 that makes it accessible to users of Python 3 versions < 3.3 and all Python 2.x versions. + + +### quote(s) + +*From the Python documentation*: + +Return a shell-escaped version of the string s. The returned value is a string that can safely be used as one token in a shell command line, for cases where you cannot use a list. + +This idiom would be unsafe: + +```python +>>> filename = 'somefile; rm -rf ~' +>>> command = 'ls -l {}'.format(filename) +>>> print(command) # executed by a shell: boom! +ls -l somefile; rm -rf ~ +``` + +`quote()` lets you plug the security hole: + +```python +>>> command = 'ls -l {}'.format(quote(filename)) +>>> print(command) +ls -l 'somefile; rm -rf ~' +>>> remote_command = 'ssh home {}'.format(quote(command)) +>>> print(remote_command) +ssh home 'ls -l '"'"'somefile; rm -rf ~'"'"'' +``` + +The quoting is compatible with UNIX shells and with `shlex.split()`: + +```python +>>> remote_command = split(remote_command) +>>> remote_command +['ssh', 'home', "ls -l 'somefile; rm -rf ~'"] +>>> command = split(remote_command[-1]) +>>> command +['ls', '-l', 'somefile; rm -rf ~'] +``` + + +## Usage + +Include `shellescape` in your project setup.py file `install_requires` dependency definition list: + +```python +setup( + ... + install_requires=['shellescape'], + ... +) +``` + +Then import the `quote` function into your module(s) and use it as needed: + +```python +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from shellescape import quote + +filename = "somefile; rm -rf ~" +escaped_shell_command = 'ls -l {}'.format(quote(filename)) +``` + +## License + +[LICENSE](https://github.com/chrissimpkins/shellescape/blob/master/docs/LICENSE) + + + + + + +%prep +%autosetup -n shellescape-3.8.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-shellescape -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 3.8.1-1 +- Package Spec generated @@ -0,0 +1 @@ +82e0074ef39471286f37d701e9efce7e shellescape-3.8.1.tar.gz |