summaryrefslogtreecommitdiff
path: root/python-beautysh.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 08:24:23 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 08:24:23 +0000
commit3d16086e02d5002f8f6a1b9c3e27a2455f187eda (patch)
tree7e3f8e7a71f301583a4ccd549b7a5785f25ee6e1 /python-beautysh.spec
parent8b3be4483d2f1df618a62c6ffd69498d847ed0bd (diff)
automatic import of python-beautyshopeneuler20.03
Diffstat (limited to 'python-beautysh.spec')
-rw-r--r--python-beautysh.spec555
1 files changed, 555 insertions, 0 deletions
diff --git a/python-beautysh.spec b/python-beautysh.spec
new file mode 100644
index 0000000..c7bc352
--- /dev/null
+++ b/python-beautysh.spec
@@ -0,0 +1,555 @@
+%global _empty_manifest_terminate_build 0
+Name: python-beautysh
+Version: 6.2.1
+Release: 1
+Summary: A Bash beautifier for the masses.
+License: MIT
+URL: https://github.com/lovesegfault/beautysh
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/20/96/0b7545646b036d7fa8c27fa6239ad6aeed4e83e22c1d3e408a036fb3d430/beautysh-6.2.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-colorama
+Requires: python3-types-colorama
+Requires: python3-types-setuptools
+
+%description
+# Beautysh [![CI](https://github.com/lovesegfault/beautysh/actions/workflows/ci.yaml/badge.svg)](https://github.com/lovesegfault/beautysh/actions/workflows/ci.yaml)
+
+This program takes upon itself the hard task of beautifying Bash scripts
+(yeesh). Processing Bash scripts is not trivial, they aren't like C or Java
+programs — they have a lot of ambiguous syntax, and (shudder) you can use
+keywords as variables. Years ago, while testing the first version of this
+program, I encountered this example:
+
+```shell
+done=0;while (( $done <= 10 ));do echo done=$done;done=$((done+1));done
+```
+Same name, but three distinct meanings (sigh). The Bash interpreter can sort out
+this perversity, but I decided not to try to recreate the Bash interpreter to
+beautify a script. This means there will be some border cases this Python
+program won't be able to process. But in tests with large Linux system
+Bash scripts, its error-free score was ~99%.
+
+## Installation
+
+If you have `pip` set up you can do
+
+```shell
+pip install beautysh
+```
+
+or clone the repo and install:
+
+```shell
+git clone https://github.com/lovesegfault/beautysh
+cd beautysh
+poetry install
+```
+
+## Usage
+
+You can call Beautysh from the command line such as
+
+```shell
+beautysh file1.sh file2.sh file3.sh
+```
+
+in which case it will beautify each one of the files.
+
+Available flags are:
+
+```
+ --indent-size INDENT_SIZE, -i INDENT_SIZE
+ Sets the number of spaces to be used in indentation.
+ --backup, -b Beautysh will create a backup file in the same path as
+ the original.
+ --check, -c Beautysh will just check the files without doing any
+ in-place beautify.
+ --tab, -t Sets indentation to tabs instead of spaces.
+ --force-function-style FORCE_FUNCTION_STYLE, -s FORCE_FUNCTION_STYLE
+ Force a specific Bash function formatting. See below
+ for more info.
+ --version, -v Prints the version and exits.
+ --help, -h Print this help message.
+
+Bash function styles that can be specified via --force-function-style are:
+ fnpar: function keyword, open/closed parentheses, e.g. function foo()
+ fnonly: function keyword, no open/closed parentheses, e.g. function foo
+ paronly: no function keyword, open/closed parentheses, e.g. foo()
+```
+
+You can also call beautysh as a module:
+
+```python3
+from beautysh import Beautify
+
+source = "my_string"
+
+result, error = Beautify().beautify_string(source)
+```
+
+As written, beautysh can beautify large numbers of Bash scripts when called
+from a variety of means,including a Bash script:
+
+```shell
+#!/bin/sh
+
+for path in `find /path -name '*.sh'`
+do
+ beautysh $path
+done
+```
+
+As well as the more obvious example:
+
+```shell
+$ beautysh *.sh
+```
+
+> **CAUTION**: Because Beautysh overwrites all the files submitted to it, this
+> could have disastrous consequences if the files include some of the
+> increasingly common Bash scripts that have appended binary content (a regime
+> where Beautysh has undefined behaviour ). So please — back up your files,
+> and don't treat Beautysh as a harmless utility. Even if that is true
+> most of the time.
+
+Beautysh handles Bash here-docs with care(and there are probably some
+border cases it doesn't handle). The basic idea is that the originator knew what
+ format he wanted in the here-doc, and a beautifier shouldn't try to outguess
+him. So Beautysh does all it can to pass along the here-doc content
+unchanged:
+
+```shell
+if true
+then
+
+ echo "Before here-doc"
+
+ # Insert 2 lines in file, then save.
+ #--------Begin here document-----------#
+vi $TARGETFILE <<x23LimitStringx23
+i
+This is line 1 of the example file.
+This is line 2 of the example file.
+^[
+ZZ
+x23LimitStringx23
+ #----------End here document-----------#
+
+ echo "After here-doc"
+
+fi
+```
+
+Special comments `@formatter:off` and `@formatter:on` are available to disable formatting around a block of statements.
+
+```shell
+# @formatter:off
+command \
+ --option1 \
+ --option2 \
+ --option3 \
+# @formatter:on
+
+```
+This takes inspiration from the Eclipse feature.
+
+## Contributing
+
+Contributions are welcome and appreciated, however test cases must be added to
+prevent regression. Adding a test case is easy, and involves the following:
+
+1. Create a file `tests/fixtures/my_test_name_raw.sh` containing the unformatted version
+ of your test case.
+1. Create a file `tests/fixtures/my_test_name_formatted.sh` containing the formatted version
+ of your test case.
+1. Register your test case in `tests/test_integration.py`, It should look
+ something like this:
+ ```python3
+ def test_my_test_name(self):
+ self.assert_formatting("my_test_name")
+ ```
+
+________________________________________________________________________________
+
+Originally written by [Paul Lutus](http://arachnoid.com/python/beautify_bash_program.html)
+
+
+%package -n python3-beautysh
+Summary: A Bash beautifier for the masses.
+Provides: python-beautysh
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-beautysh
+# Beautysh [![CI](https://github.com/lovesegfault/beautysh/actions/workflows/ci.yaml/badge.svg)](https://github.com/lovesegfault/beautysh/actions/workflows/ci.yaml)
+
+This program takes upon itself the hard task of beautifying Bash scripts
+(yeesh). Processing Bash scripts is not trivial, they aren't like C or Java
+programs — they have a lot of ambiguous syntax, and (shudder) you can use
+keywords as variables. Years ago, while testing the first version of this
+program, I encountered this example:
+
+```shell
+done=0;while (( $done <= 10 ));do echo done=$done;done=$((done+1));done
+```
+Same name, but three distinct meanings (sigh). The Bash interpreter can sort out
+this perversity, but I decided not to try to recreate the Bash interpreter to
+beautify a script. This means there will be some border cases this Python
+program won't be able to process. But in tests with large Linux system
+Bash scripts, its error-free score was ~99%.
+
+## Installation
+
+If you have `pip` set up you can do
+
+```shell
+pip install beautysh
+```
+
+or clone the repo and install:
+
+```shell
+git clone https://github.com/lovesegfault/beautysh
+cd beautysh
+poetry install
+```
+
+## Usage
+
+You can call Beautysh from the command line such as
+
+```shell
+beautysh file1.sh file2.sh file3.sh
+```
+
+in which case it will beautify each one of the files.
+
+Available flags are:
+
+```
+ --indent-size INDENT_SIZE, -i INDENT_SIZE
+ Sets the number of spaces to be used in indentation.
+ --backup, -b Beautysh will create a backup file in the same path as
+ the original.
+ --check, -c Beautysh will just check the files without doing any
+ in-place beautify.
+ --tab, -t Sets indentation to tabs instead of spaces.
+ --force-function-style FORCE_FUNCTION_STYLE, -s FORCE_FUNCTION_STYLE
+ Force a specific Bash function formatting. See below
+ for more info.
+ --version, -v Prints the version and exits.
+ --help, -h Print this help message.
+
+Bash function styles that can be specified via --force-function-style are:
+ fnpar: function keyword, open/closed parentheses, e.g. function foo()
+ fnonly: function keyword, no open/closed parentheses, e.g. function foo
+ paronly: no function keyword, open/closed parentheses, e.g. foo()
+```
+
+You can also call beautysh as a module:
+
+```python3
+from beautysh import Beautify
+
+source = "my_string"
+
+result, error = Beautify().beautify_string(source)
+```
+
+As written, beautysh can beautify large numbers of Bash scripts when called
+from a variety of means,including a Bash script:
+
+```shell
+#!/bin/sh
+
+for path in `find /path -name '*.sh'`
+do
+ beautysh $path
+done
+```
+
+As well as the more obvious example:
+
+```shell
+$ beautysh *.sh
+```
+
+> **CAUTION**: Because Beautysh overwrites all the files submitted to it, this
+> could have disastrous consequences if the files include some of the
+> increasingly common Bash scripts that have appended binary content (a regime
+> where Beautysh has undefined behaviour ). So please — back up your files,
+> and don't treat Beautysh as a harmless utility. Even if that is true
+> most of the time.
+
+Beautysh handles Bash here-docs with care(and there are probably some
+border cases it doesn't handle). The basic idea is that the originator knew what
+ format he wanted in the here-doc, and a beautifier shouldn't try to outguess
+him. So Beautysh does all it can to pass along the here-doc content
+unchanged:
+
+```shell
+if true
+then
+
+ echo "Before here-doc"
+
+ # Insert 2 lines in file, then save.
+ #--------Begin here document-----------#
+vi $TARGETFILE <<x23LimitStringx23
+i
+This is line 1 of the example file.
+This is line 2 of the example file.
+^[
+ZZ
+x23LimitStringx23
+ #----------End here document-----------#
+
+ echo "After here-doc"
+
+fi
+```
+
+Special comments `@formatter:off` and `@formatter:on` are available to disable formatting around a block of statements.
+
+```shell
+# @formatter:off
+command \
+ --option1 \
+ --option2 \
+ --option3 \
+# @formatter:on
+
+```
+This takes inspiration from the Eclipse feature.
+
+## Contributing
+
+Contributions are welcome and appreciated, however test cases must be added to
+prevent regression. Adding a test case is easy, and involves the following:
+
+1. Create a file `tests/fixtures/my_test_name_raw.sh` containing the unformatted version
+ of your test case.
+1. Create a file `tests/fixtures/my_test_name_formatted.sh` containing the formatted version
+ of your test case.
+1. Register your test case in `tests/test_integration.py`, It should look
+ something like this:
+ ```python3
+ def test_my_test_name(self):
+ self.assert_formatting("my_test_name")
+ ```
+
+________________________________________________________________________________
+
+Originally written by [Paul Lutus](http://arachnoid.com/python/beautify_bash_program.html)
+
+
+%package help
+Summary: Development documents and examples for beautysh
+Provides: python3-beautysh-doc
+%description help
+# Beautysh [![CI](https://github.com/lovesegfault/beautysh/actions/workflows/ci.yaml/badge.svg)](https://github.com/lovesegfault/beautysh/actions/workflows/ci.yaml)
+
+This program takes upon itself the hard task of beautifying Bash scripts
+(yeesh). Processing Bash scripts is not trivial, they aren't like C or Java
+programs — they have a lot of ambiguous syntax, and (shudder) you can use
+keywords as variables. Years ago, while testing the first version of this
+program, I encountered this example:
+
+```shell
+done=0;while (( $done <= 10 ));do echo done=$done;done=$((done+1));done
+```
+Same name, but three distinct meanings (sigh). The Bash interpreter can sort out
+this perversity, but I decided not to try to recreate the Bash interpreter to
+beautify a script. This means there will be some border cases this Python
+program won't be able to process. But in tests with large Linux system
+Bash scripts, its error-free score was ~99%.
+
+## Installation
+
+If you have `pip` set up you can do
+
+```shell
+pip install beautysh
+```
+
+or clone the repo and install:
+
+```shell
+git clone https://github.com/lovesegfault/beautysh
+cd beautysh
+poetry install
+```
+
+## Usage
+
+You can call Beautysh from the command line such as
+
+```shell
+beautysh file1.sh file2.sh file3.sh
+```
+
+in which case it will beautify each one of the files.
+
+Available flags are:
+
+```
+ --indent-size INDENT_SIZE, -i INDENT_SIZE
+ Sets the number of spaces to be used in indentation.
+ --backup, -b Beautysh will create a backup file in the same path as
+ the original.
+ --check, -c Beautysh will just check the files without doing any
+ in-place beautify.
+ --tab, -t Sets indentation to tabs instead of spaces.
+ --force-function-style FORCE_FUNCTION_STYLE, -s FORCE_FUNCTION_STYLE
+ Force a specific Bash function formatting. See below
+ for more info.
+ --version, -v Prints the version and exits.
+ --help, -h Print this help message.
+
+Bash function styles that can be specified via --force-function-style are:
+ fnpar: function keyword, open/closed parentheses, e.g. function foo()
+ fnonly: function keyword, no open/closed parentheses, e.g. function foo
+ paronly: no function keyword, open/closed parentheses, e.g. foo()
+```
+
+You can also call beautysh as a module:
+
+```python3
+from beautysh import Beautify
+
+source = "my_string"
+
+result, error = Beautify().beautify_string(source)
+```
+
+As written, beautysh can beautify large numbers of Bash scripts when called
+from a variety of means,including a Bash script:
+
+```shell
+#!/bin/sh
+
+for path in `find /path -name '*.sh'`
+do
+ beautysh $path
+done
+```
+
+As well as the more obvious example:
+
+```shell
+$ beautysh *.sh
+```
+
+> **CAUTION**: Because Beautysh overwrites all the files submitted to it, this
+> could have disastrous consequences if the files include some of the
+> increasingly common Bash scripts that have appended binary content (a regime
+> where Beautysh has undefined behaviour ). So please — back up your files,
+> and don't treat Beautysh as a harmless utility. Even if that is true
+> most of the time.
+
+Beautysh handles Bash here-docs with care(and there are probably some
+border cases it doesn't handle). The basic idea is that the originator knew what
+ format he wanted in the here-doc, and a beautifier shouldn't try to outguess
+him. So Beautysh does all it can to pass along the here-doc content
+unchanged:
+
+```shell
+if true
+then
+
+ echo "Before here-doc"
+
+ # Insert 2 lines in file, then save.
+ #--------Begin here document-----------#
+vi $TARGETFILE <<x23LimitStringx23
+i
+This is line 1 of the example file.
+This is line 2 of the example file.
+^[
+ZZ
+x23LimitStringx23
+ #----------End here document-----------#
+
+ echo "After here-doc"
+
+fi
+```
+
+Special comments `@formatter:off` and `@formatter:on` are available to disable formatting around a block of statements.
+
+```shell
+# @formatter:off
+command \
+ --option1 \
+ --option2 \
+ --option3 \
+# @formatter:on
+
+```
+This takes inspiration from the Eclipse feature.
+
+## Contributing
+
+Contributions are welcome and appreciated, however test cases must be added to
+prevent regression. Adding a test case is easy, and involves the following:
+
+1. Create a file `tests/fixtures/my_test_name_raw.sh` containing the unformatted version
+ of your test case.
+1. Create a file `tests/fixtures/my_test_name_formatted.sh` containing the formatted version
+ of your test case.
+1. Register your test case in `tests/test_integration.py`, It should look
+ something like this:
+ ```python3
+ def test_my_test_name(self):
+ self.assert_formatting("my_test_name")
+ ```
+
+________________________________________________________________________________
+
+Originally written by [Paul Lutus](http://arachnoid.com/python/beautify_bash_program.html)
+
+
+%prep
+%autosetup -n beautysh-6.2.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-beautysh -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 6.2.1-1
+- Package Spec generated