%global _empty_manifest_terminate_build 0 Name: python-polidoro-cli Version: 4.6.8 Release: 1 Summary: Polidoro CLI. License: MIT URL: https://github.com/heitorpolidoro/polidoro-cli Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6b/47/961af7e24dafca07d13fc2e4df9654065d57d1605f9086e5c5746249f47c/polidoro-cli-4.6.8.tar.gz BuildArch: noarch Requires: python3-polidoro-argument Requires: python3-pyyaml %description # Polidoro CLI [![Upload Python Package](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-publish.yml/badge.svg)](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-publish.yml) [![Lint with comments](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-lint.yml/badge.svg)](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-lint.yml) ![GitHub last commit](https://img.shields.io/github/last-commit/heitorpolidoro/polidoro-cli) [![Coverage Status](https://coveralls.io/repos/github/heitorpolidoro/polidoro-cli/badge.svg?branch=master)](https://coveralls.io/github/heitorpolidoro/polidoro-cli?branch=master) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_polidoro-cli&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=heitorpolidoro_polidoro-cli) [![Latest](https://img.shields.io/github/release/heitorpolidoro/polidoro-cli.svg?label=latest)](https://github.com/heitorpolidoro/polidoro-cli/releases/latest) ![GitHub Release Date](https://img.shields.io/github/release-date/heitorpolidoro/polidoro-cli) ![PyPI - Downloads](https://img.shields.io/pypi/dm/polidoro-cli?label=PyPi%20Downloads) ![GitHub](https://img.shields.io/github/license/heitorpolidoro/polidoro-cli) ### To install ``` sudo apt install python3-pip -y pip3 install polidoro_cli ``` ### To use: `cli --help` ### Tips: Create alias for the CLI commands: Add in your `.bashrc` ``` alias dk='cli docker' alias ex='cli elixir' alias dj='cli django' alias rb='cli ruby' alias g='cli git' ... ``` Or run `cli create_aliases` to create aliases for all default CLIs ### Default CLIs: - **Django** [more information](README_DJANGO.md) - **Docker:** [more information](README_DOCKER.md) - **Elixir:** [more information](README_ELIXIR.md) - **Git:** [more information](README_GIT.md) - **NPM:** [more information](README_NPM.md) - **PyTest:** [more information](README_PYTEST.md) - **Ruby:** [more information](README_RUBY.md) ### Creating your own CLI To create your CLI just create a file in `~/.cli` with the CLI name `NAME.cli` or `NAME.py` then call it with `cli name` or create an alias for it: ```shell alias name='cli name' ``` In the `.cli` file, create aliases similar to the bash ``` # git.cli ps=git push ``` To call run `cli git ps`. Or create an bash alias `alias g=cli git` then run using only `g ps` #### Multiples aliases To create multiples aliases separate by `,` ``` # git.cli simple_log,l=git log --one-line ``` You can call using either `g simple_log` or `g l`. #### Multiples commands To create a command with multiple commands separate by `;` ``` # git.cli commit_push,cp=git commit;git push ``` **NOTE:** If any command fails, will not execute the other commands #### Using arguments The CLI will put any arguments at the end of the command, by default, but you can specify where use those arguments using `$args`. ``` # git.cli commit_push,cp=git commit -m "$args";git push ``` Run with `g cp batata` will execute `git commit -m "batata"` then `git push` It is possible to specify the argument ``` # postgres.cli run=psql -U $arg0 -d $arg1 -c $arg2 ``` Running `cli postgres run heitor polidoro_db "select * from table"` will execute `psql -U 'heitor' -d 'polidoro_db' -c 'select * from table'` Use `${argN:DEFAULT_VALUE}` to specify a default value to the argument #### Variables To set some variable use `set NAME=VALE` and use it with `$NAME` ``` # postgres.cli set DB_USER=heitor set DB_NAME=polidoro_db run=psql -U $USER -d $DB_NAME -c ``` Running `cli postgres run "select * from table"` will execute `psql -U 'heitor' -d 'polidoro_db' -c 'select * from table'` There is a special variable called `DEFAULT_COMMAND`, when set will start all commands with the value. ``` # git.cli set DEFAULT_COMMAND=git ps=push pl=pull commit_push,cp=commit -m "$args";push ``` When run `g ps` will execute `git push`. Also works with multiple commands, like `g cp msg` will execute `git commit -m "msg"` then `git push`. Also, when `DEFAULT_COMMAND` is set, all commands that is not set in the `.cli` file will be called using the `DEFAULT_COMMAND`. `g fetch` will call `git fetch` even if the command `fetch` is not in the `git.cli`, and, when run `--help` will show the `DEFAULT_COMMAND` help then the CLI help. There is a pair of special variables called `docker` and `service`, you can't (shouldn't) set, but you can use. When used will replace the `$docker` with `docker-compose exec $service` if the parameter `-d/--docker` is in the command line. The CLI will replace `$service` for the first argument from the command line, if is a valid service, or will use the first service with `build` in `docker-compose.yml`. ``` # elixir.cli deps=$docker mix deps.get ``` If you call `ex deps` will execute `mix deps.get`, if you call `ex deps -d` will execute `docker-compose exec service_name mix deps.get` or `ex deps -d other_service` will execute `docker-compose exec other_service mix deps.get`. With the `$docker` variable you can create CLIs that runs in the host or in the container. You can combine things like: ``` # elixir.cli set DEFAULT_COMMAND=$docker mix deps=deps.get setup=ecto.setup reset=ecto.reset ``` All commands will run in the host or in the container if `-d/--docker` is in the parameters You can explicit the command (or replace the `DEFAULT_COMMAND`) passing a dict (Python format) as command. ``` # elixir.cli set DEFAULT_COMMAND=mix deps=deps.get iex={'command': 'iex -S mix'} ``` In this case, when you call `ex iex` will run `iex -S mix` without the `DEFAULT_COMMAND` These ar the values you can use: | Key | Description | | ---: | --- | | `command` | The command to execute | | `help` | Replace the generated help | | `show_cmd` | To print or not the command (default=`True`) | | `exit_on_fail` | if `False` will not terminate multiples commands when any one fails (default=`True`) | | `messages` | Another dict with Messages to print:
`start`: Print the message before any command
`success`: Print the message when the command finish with success
`error`: Print the message when the command fails
`finish`: Print the message regardless the command result | | `ANY_THNG` | Will set environment variable Examples: ``` test={ 'command': '$docker mix test', 'MIX_ENV': 'test' } ``` Will set the environment variable `MIX_ENV` to `test` then run `mix test` #### Environment Variables To set an environment variable for the CLIs commands use `export` like in bash ``` # pytest.cli export DJANGO_LOG_FILE=/tmp/log export PYTEST_ADDOPTS="--color=yes" ``` Any command in the Pytest CLI will use those environment variables #### Complex Commands To create more complexes commands, you can create a `NAME.py` file. Create a class with the name of the CLI, annotate the method you want with `@Command` and run the commands with `CLI.execute` ``` # git.py import os from polidoro_argument import Command from polidoro_cli import CLI class Git(object): @staticmethod @Command(help='Run "git fetch" in all git projects') def fetch_all(): for dir in os.listdir(): if os.path.isdir(dir): os.chdir(dir) if os.path.exists('.git'): print(f'Fetching in {dir}...') CLI.execute('git fetch', show_cmd=False) os.chdir('..') ``` %package -n python3-polidoro-cli Summary: Polidoro CLI. Provides: python-polidoro-cli BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-polidoro-cli # Polidoro CLI [![Upload Python Package](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-publish.yml/badge.svg)](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-publish.yml) [![Lint with comments](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-lint.yml/badge.svg)](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-lint.yml) ![GitHub last commit](https://img.shields.io/github/last-commit/heitorpolidoro/polidoro-cli) [![Coverage Status](https://coveralls.io/repos/github/heitorpolidoro/polidoro-cli/badge.svg?branch=master)](https://coveralls.io/github/heitorpolidoro/polidoro-cli?branch=master) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_polidoro-cli&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=heitorpolidoro_polidoro-cli) [![Latest](https://img.shields.io/github/release/heitorpolidoro/polidoro-cli.svg?label=latest)](https://github.com/heitorpolidoro/polidoro-cli/releases/latest) ![GitHub Release Date](https://img.shields.io/github/release-date/heitorpolidoro/polidoro-cli) ![PyPI - Downloads](https://img.shields.io/pypi/dm/polidoro-cli?label=PyPi%20Downloads) ![GitHub](https://img.shields.io/github/license/heitorpolidoro/polidoro-cli) ### To install ``` sudo apt install python3-pip -y pip3 install polidoro_cli ``` ### To use: `cli --help` ### Tips: Create alias for the CLI commands: Add in your `.bashrc` ``` alias dk='cli docker' alias ex='cli elixir' alias dj='cli django' alias rb='cli ruby' alias g='cli git' ... ``` Or run `cli create_aliases` to create aliases for all default CLIs ### Default CLIs: - **Django** [more information](README_DJANGO.md) - **Docker:** [more information](README_DOCKER.md) - **Elixir:** [more information](README_ELIXIR.md) - **Git:** [more information](README_GIT.md) - **NPM:** [more information](README_NPM.md) - **PyTest:** [more information](README_PYTEST.md) - **Ruby:** [more information](README_RUBY.md) ### Creating your own CLI To create your CLI just create a file in `~/.cli` with the CLI name `NAME.cli` or `NAME.py` then call it with `cli name` or create an alias for it: ```shell alias name='cli name' ``` In the `.cli` file, create aliases similar to the bash ``` # git.cli ps=git push ``` To call run `cli git ps`. Or create an bash alias `alias g=cli git` then run using only `g ps` #### Multiples aliases To create multiples aliases separate by `,` ``` # git.cli simple_log,l=git log --one-line ``` You can call using either `g simple_log` or `g l`. #### Multiples commands To create a command with multiple commands separate by `;` ``` # git.cli commit_push,cp=git commit;git push ``` **NOTE:** If any command fails, will not execute the other commands #### Using arguments The CLI will put any arguments at the end of the command, by default, but you can specify where use those arguments using `$args`. ``` # git.cli commit_push,cp=git commit -m "$args";git push ``` Run with `g cp batata` will execute `git commit -m "batata"` then `git push` It is possible to specify the argument ``` # postgres.cli run=psql -U $arg0 -d $arg1 -c $arg2 ``` Running `cli postgres run heitor polidoro_db "select * from table"` will execute `psql -U 'heitor' -d 'polidoro_db' -c 'select * from table'` Use `${argN:DEFAULT_VALUE}` to specify a default value to the argument #### Variables To set some variable use `set NAME=VALE` and use it with `$NAME` ``` # postgres.cli set DB_USER=heitor set DB_NAME=polidoro_db run=psql -U $USER -d $DB_NAME -c ``` Running `cli postgres run "select * from table"` will execute `psql -U 'heitor' -d 'polidoro_db' -c 'select * from table'` There is a special variable called `DEFAULT_COMMAND`, when set will start all commands with the value. ``` # git.cli set DEFAULT_COMMAND=git ps=push pl=pull commit_push,cp=commit -m "$args";push ``` When run `g ps` will execute `git push`. Also works with multiple commands, like `g cp msg` will execute `git commit -m "msg"` then `git push`. Also, when `DEFAULT_COMMAND` is set, all commands that is not set in the `.cli` file will be called using the `DEFAULT_COMMAND`. `g fetch` will call `git fetch` even if the command `fetch` is not in the `git.cli`, and, when run `--help` will show the `DEFAULT_COMMAND` help then the CLI help. There is a pair of special variables called `docker` and `service`, you can't (shouldn't) set, but you can use. When used will replace the `$docker` with `docker-compose exec $service` if the parameter `-d/--docker` is in the command line. The CLI will replace `$service` for the first argument from the command line, if is a valid service, or will use the first service with `build` in `docker-compose.yml`. ``` # elixir.cli deps=$docker mix deps.get ``` If you call `ex deps` will execute `mix deps.get`, if you call `ex deps -d` will execute `docker-compose exec service_name mix deps.get` or `ex deps -d other_service` will execute `docker-compose exec other_service mix deps.get`. With the `$docker` variable you can create CLIs that runs in the host or in the container. You can combine things like: ``` # elixir.cli set DEFAULT_COMMAND=$docker mix deps=deps.get setup=ecto.setup reset=ecto.reset ``` All commands will run in the host or in the container if `-d/--docker` is in the parameters You can explicit the command (or replace the `DEFAULT_COMMAND`) passing a dict (Python format) as command. ``` # elixir.cli set DEFAULT_COMMAND=mix deps=deps.get iex={'command': 'iex -S mix'} ``` In this case, when you call `ex iex` will run `iex -S mix` without the `DEFAULT_COMMAND` These ar the values you can use: | Key | Description | | ---: | --- | | `command` | The command to execute | | `help` | Replace the generated help | | `show_cmd` | To print or not the command (default=`True`) | | `exit_on_fail` | if `False` will not terminate multiples commands when any one fails (default=`True`) | | `messages` | Another dict with Messages to print:
`start`: Print the message before any command
`success`: Print the message when the command finish with success
`error`: Print the message when the command fails
`finish`: Print the message regardless the command result | | `ANY_THNG` | Will set environment variable Examples: ``` test={ 'command': '$docker mix test', 'MIX_ENV': 'test' } ``` Will set the environment variable `MIX_ENV` to `test` then run `mix test` #### Environment Variables To set an environment variable for the CLIs commands use `export` like in bash ``` # pytest.cli export DJANGO_LOG_FILE=/tmp/log export PYTEST_ADDOPTS="--color=yes" ``` Any command in the Pytest CLI will use those environment variables #### Complex Commands To create more complexes commands, you can create a `NAME.py` file. Create a class with the name of the CLI, annotate the method you want with `@Command` and run the commands with `CLI.execute` ``` # git.py import os from polidoro_argument import Command from polidoro_cli import CLI class Git(object): @staticmethod @Command(help='Run "git fetch" in all git projects') def fetch_all(): for dir in os.listdir(): if os.path.isdir(dir): os.chdir(dir) if os.path.exists('.git'): print(f'Fetching in {dir}...') CLI.execute('git fetch', show_cmd=False) os.chdir('..') ``` %package help Summary: Development documents and examples for polidoro-cli Provides: python3-polidoro-cli-doc %description help # Polidoro CLI [![Upload Python Package](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-publish.yml/badge.svg)](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-publish.yml) [![Lint with comments](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-lint.yml/badge.svg)](https://github.com/heitorpolidoro/polidoro-cli/actions/workflows/python-lint.yml) ![GitHub last commit](https://img.shields.io/github/last-commit/heitorpolidoro/polidoro-cli) [![Coverage Status](https://coveralls.io/repos/github/heitorpolidoro/polidoro-cli/badge.svg?branch=master)](https://coveralls.io/github/heitorpolidoro/polidoro-cli?branch=master) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_polidoro-cli&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=heitorpolidoro_polidoro-cli) [![Latest](https://img.shields.io/github/release/heitorpolidoro/polidoro-cli.svg?label=latest)](https://github.com/heitorpolidoro/polidoro-cli/releases/latest) ![GitHub Release Date](https://img.shields.io/github/release-date/heitorpolidoro/polidoro-cli) ![PyPI - Downloads](https://img.shields.io/pypi/dm/polidoro-cli?label=PyPi%20Downloads) ![GitHub](https://img.shields.io/github/license/heitorpolidoro/polidoro-cli) ### To install ``` sudo apt install python3-pip -y pip3 install polidoro_cli ``` ### To use: `cli --help` ### Tips: Create alias for the CLI commands: Add in your `.bashrc` ``` alias dk='cli docker' alias ex='cli elixir' alias dj='cli django' alias rb='cli ruby' alias g='cli git' ... ``` Or run `cli create_aliases` to create aliases for all default CLIs ### Default CLIs: - **Django** [more information](README_DJANGO.md) - **Docker:** [more information](README_DOCKER.md) - **Elixir:** [more information](README_ELIXIR.md) - **Git:** [more information](README_GIT.md) - **NPM:** [more information](README_NPM.md) - **PyTest:** [more information](README_PYTEST.md) - **Ruby:** [more information](README_RUBY.md) ### Creating your own CLI To create your CLI just create a file in `~/.cli` with the CLI name `NAME.cli` or `NAME.py` then call it with `cli name` or create an alias for it: ```shell alias name='cli name' ``` In the `.cli` file, create aliases similar to the bash ``` # git.cli ps=git push ``` To call run `cli git ps`. Or create an bash alias `alias g=cli git` then run using only `g ps` #### Multiples aliases To create multiples aliases separate by `,` ``` # git.cli simple_log,l=git log --one-line ``` You can call using either `g simple_log` or `g l`. #### Multiples commands To create a command with multiple commands separate by `;` ``` # git.cli commit_push,cp=git commit;git push ``` **NOTE:** If any command fails, will not execute the other commands #### Using arguments The CLI will put any arguments at the end of the command, by default, but you can specify where use those arguments using `$args`. ``` # git.cli commit_push,cp=git commit -m "$args";git push ``` Run with `g cp batata` will execute `git commit -m "batata"` then `git push` It is possible to specify the argument ``` # postgres.cli run=psql -U $arg0 -d $arg1 -c $arg2 ``` Running `cli postgres run heitor polidoro_db "select * from table"` will execute `psql -U 'heitor' -d 'polidoro_db' -c 'select * from table'` Use `${argN:DEFAULT_VALUE}` to specify a default value to the argument #### Variables To set some variable use `set NAME=VALE` and use it with `$NAME` ``` # postgres.cli set DB_USER=heitor set DB_NAME=polidoro_db run=psql -U $USER -d $DB_NAME -c ``` Running `cli postgres run "select * from table"` will execute `psql -U 'heitor' -d 'polidoro_db' -c 'select * from table'` There is a special variable called `DEFAULT_COMMAND`, when set will start all commands with the value. ``` # git.cli set DEFAULT_COMMAND=git ps=push pl=pull commit_push,cp=commit -m "$args";push ``` When run `g ps` will execute `git push`. Also works with multiple commands, like `g cp msg` will execute `git commit -m "msg"` then `git push`. Also, when `DEFAULT_COMMAND` is set, all commands that is not set in the `.cli` file will be called using the `DEFAULT_COMMAND`. `g fetch` will call `git fetch` even if the command `fetch` is not in the `git.cli`, and, when run `--help` will show the `DEFAULT_COMMAND` help then the CLI help. There is a pair of special variables called `docker` and `service`, you can't (shouldn't) set, but you can use. When used will replace the `$docker` with `docker-compose exec $service` if the parameter `-d/--docker` is in the command line. The CLI will replace `$service` for the first argument from the command line, if is a valid service, or will use the first service with `build` in `docker-compose.yml`. ``` # elixir.cli deps=$docker mix deps.get ``` If you call `ex deps` will execute `mix deps.get`, if you call `ex deps -d` will execute `docker-compose exec service_name mix deps.get` or `ex deps -d other_service` will execute `docker-compose exec other_service mix deps.get`. With the `$docker` variable you can create CLIs that runs in the host or in the container. You can combine things like: ``` # elixir.cli set DEFAULT_COMMAND=$docker mix deps=deps.get setup=ecto.setup reset=ecto.reset ``` All commands will run in the host or in the container if `-d/--docker` is in the parameters You can explicit the command (or replace the `DEFAULT_COMMAND`) passing a dict (Python format) as command. ``` # elixir.cli set DEFAULT_COMMAND=mix deps=deps.get iex={'command': 'iex -S mix'} ``` In this case, when you call `ex iex` will run `iex -S mix` without the `DEFAULT_COMMAND` These ar the values you can use: | Key | Description | | ---: | --- | | `command` | The command to execute | | `help` | Replace the generated help | | `show_cmd` | To print or not the command (default=`True`) | | `exit_on_fail` | if `False` will not terminate multiples commands when any one fails (default=`True`) | | `messages` | Another dict with Messages to print:
`start`: Print the message before any command
`success`: Print the message when the command finish with success
`error`: Print the message when the command fails
`finish`: Print the message regardless the command result | | `ANY_THNG` | Will set environment variable Examples: ``` test={ 'command': '$docker mix test', 'MIX_ENV': 'test' } ``` Will set the environment variable `MIX_ENV` to `test` then run `mix test` #### Environment Variables To set an environment variable for the CLIs commands use `export` like in bash ``` # pytest.cli export DJANGO_LOG_FILE=/tmp/log export PYTEST_ADDOPTS="--color=yes" ``` Any command in the Pytest CLI will use those environment variables #### Complex Commands To create more complexes commands, you can create a `NAME.py` file. Create a class with the name of the CLI, annotate the method you want with `@Command` and run the commands with `CLI.execute` ``` # git.py import os from polidoro_argument import Command from polidoro_cli import CLI class Git(object): @staticmethod @Command(help='Run "git fetch" in all git projects') def fetch_all(): for dir in os.listdir(): if os.path.isdir(dir): os.chdir(dir) if os.path.exists('.git'): print(f'Fetching in {dir}...') CLI.execute('git fetch', show_cmd=False) os.chdir('..') ``` %prep %autosetup -n polidoro-cli-4.6.8 %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-polidoro-cli -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 10 2023 Python_Bot - 4.6.8-1 - Package Spec generated