diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-15 08:21:09 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 08:21:09 +0000 |
| commit | ecdcfbae49658110d0b80b03fbf1e76d2d00769a (patch) | |
| tree | e6b1982f496dfb1d0bc77d563cc5beca0d3a25a9 | |
| parent | 443e6e85ac6e668837e0341be04ef97b6b9bec19 (diff) | |
automatic import of python-cloudmesh-cmd5
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-cloudmesh-cmd5.spec | 440 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 442 insertions, 0 deletions
@@ -0,0 +1 @@ +/cloudmesh-cmd5-4.3.26.tar.gz diff --git a/python-cloudmesh-cmd5.spec b/python-cloudmesh-cmd5.spec new file mode 100644 index 0000000..d8e8260 --- /dev/null +++ b/python-cloudmesh-cmd5.spec @@ -0,0 +1,440 @@ +%global _empty_manifest_terminate_build 0 +Name: python-cloudmesh-cmd5 +Version: 4.3.26 +Release: 1 +Summary: A dynamic extensible CMD based command shell +License: Apache 2.0 +URL: https://github.com/cloudmesh/cloudmesh-cmd5 +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b7/ed/283674eb4c77cf23a541fd6afbe0f62b4e15d0f7efafb389d1367518073c/cloudmesh-cmd5-4.3.26.tar.gz +BuildArch: noarch + +Requires: python3-pyyaml +Requires: python3-docopt +Requires: python3-requests +Requires: python3-md-toc +Requires: python3-cloudmesh-common + +%description +EOF commands default help pause q shell sys version +banner config echo info plugin quit sleep test +clear debug gui man py set stopwatch var +``` +To see the manual page for a specific command, please use:: +``` +cms> help COMMANDNAME +``` +A full manual page is available at +* <https://cloudmesh.github.io/cloudmesh-manual/> +## CMD 5 Plugin Mechanism +Cmd5 comes with a sophisticated plugin mechanism. Commands can be readily +designed from the sys command. +The sys command can be installed either from source (as discussed previously) or +via pip +```bash +$ pip install cloudmesh-sys +``` +Once you have installed it, execute `cms help sys` to see the usage. Now you +simply can in a new directory execute the sys command as follows, where +`mycommnad` is than name of the command you like to implement. +```bash +$ mkdir mycommand +$ cd mycommand +$ cms sys command generate mycommand . +``` +A directory with the name `cloudmesh-mycommand` will be generated that contains +the template for the command. You can enter this template and modify the +implementation in the folders `cloudmesh/mycommand/api` and +`cloudmesh/mycommand/command` when installing it with +``` +$ pip install . +``` +The command will be added to the cms command> +An example for the bar command is presented at: +* [cloudmesh/bar/command/bar.py](https://github.com/cloudmesh/cloudmesh.bar/blob/main/cloudmesh/bar/command/bar.py) +It shows how simple the command definition is (bar.py):: +```bash +from cloudmesh.shell.command import command +from cloudmesh.shell.command import PluginCommand +class BarCommand(PluginCommand): + @command + def do_bar(self, args, arguments): + """ + Usage: + command -f FILE + command FILE + command list + This command does some useful things. + Arguments: + FILE a file name + Options: + -f specify the file + """ + print(arguments) +``` +An important difference to other CMD solutions is that our commands +can leverage (besides the standard definition), docopts as a way to +define the manual page. This allows us to use arguments as dict and +use simple if conditions to interpret the command. Using docopts has +the advantage that contributors are forced to think about the command +and its options and document them from the start. Previously we used +not to use docopts and argparse was used. However we noticed that for +some contributions the lead to commands that were either not properly +documented or the developers delivered ambiguous commands that +resulted in confusion and wrong usage by the users. Hence, we do +recommend that you use docopts. +The transformation is enabled by the `@command` decorator that takes +also the manual page and creates a proper help message for the shell +automatically. Thus there is no need to introduce a separate help +method as would normally be needed in CMD. +## Features +The following highlighted features are available: +* easy command integration through separate modules +* multi cloud environments (under development) though cloudmesh-cloud plugin +* openapi integration through cloudmesh-openapi plugin +* general commands as documented at in the + [manual](https://cloudmesh.github.io/cloudmesh-manual/) such as + [admin](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/admin.html), + [banner](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/banner.html), + [clear](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/clear.html), + [echo](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/echo.html), + [default](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/default.html), + [info](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/info.html), + [pause](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/pause.html), + [plugin](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/plugin.html), + [quit](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/quit.html), + [shell](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/shell.html), + [sleep](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/sleep.html), + [stopwatch](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/stopwatch.html), + [sys](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/sys.html), + [var](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/var.html), + [version](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/version.html), + [open](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/open.html), + and others +## New Features +* Support for terminals with dark background +* Support for python in variable assignments + ``` + cms set a=\"py 1 + 1\" + a='2' + ``` +* Support for executing python in a py command + ``` + cms py 1 + 1 + 2 + ``` +* Support for shell commands in the variabe value + ``` + cms set a=\!pwd + ``` +* Support for reading values from a yaml configuration file in + `~/.cloudmesh/cloudmesh.yaml` + ``` + cms set a=cloudmesh.profile.user + ``` + where it is defined as + ``` + cloudmesh: + profile: + user: gregor + ``` + +%package -n python3-cloudmesh-cmd5 +Summary: A dynamic extensible CMD based command shell +Provides: python-cloudmesh-cmd5 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-cloudmesh-cmd5 +EOF commands default help pause q shell sys version +banner config echo info plugin quit sleep test +clear debug gui man py set stopwatch var +``` +To see the manual page for a specific command, please use:: +``` +cms> help COMMANDNAME +``` +A full manual page is available at +* <https://cloudmesh.github.io/cloudmesh-manual/> +## CMD 5 Plugin Mechanism +Cmd5 comes with a sophisticated plugin mechanism. Commands can be readily +designed from the sys command. +The sys command can be installed either from source (as discussed previously) or +via pip +```bash +$ pip install cloudmesh-sys +``` +Once you have installed it, execute `cms help sys` to see the usage. Now you +simply can in a new directory execute the sys command as follows, where +`mycommnad` is than name of the command you like to implement. +```bash +$ mkdir mycommand +$ cd mycommand +$ cms sys command generate mycommand . +``` +A directory with the name `cloudmesh-mycommand` will be generated that contains +the template for the command. You can enter this template and modify the +implementation in the folders `cloudmesh/mycommand/api` and +`cloudmesh/mycommand/command` when installing it with +``` +$ pip install . +``` +The command will be added to the cms command> +An example for the bar command is presented at: +* [cloudmesh/bar/command/bar.py](https://github.com/cloudmesh/cloudmesh.bar/blob/main/cloudmesh/bar/command/bar.py) +It shows how simple the command definition is (bar.py):: +```bash +from cloudmesh.shell.command import command +from cloudmesh.shell.command import PluginCommand +class BarCommand(PluginCommand): + @command + def do_bar(self, args, arguments): + """ + Usage: + command -f FILE + command FILE + command list + This command does some useful things. + Arguments: + FILE a file name + Options: + -f specify the file + """ + print(arguments) +``` +An important difference to other CMD solutions is that our commands +can leverage (besides the standard definition), docopts as a way to +define the manual page. This allows us to use arguments as dict and +use simple if conditions to interpret the command. Using docopts has +the advantage that contributors are forced to think about the command +and its options and document them from the start. Previously we used +not to use docopts and argparse was used. However we noticed that for +some contributions the lead to commands that were either not properly +documented or the developers delivered ambiguous commands that +resulted in confusion and wrong usage by the users. Hence, we do +recommend that you use docopts. +The transformation is enabled by the `@command` decorator that takes +also the manual page and creates a proper help message for the shell +automatically. Thus there is no need to introduce a separate help +method as would normally be needed in CMD. +## Features +The following highlighted features are available: +* easy command integration through separate modules +* multi cloud environments (under development) though cloudmesh-cloud plugin +* openapi integration through cloudmesh-openapi plugin +* general commands as documented at in the + [manual](https://cloudmesh.github.io/cloudmesh-manual/) such as + [admin](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/admin.html), + [banner](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/banner.html), + [clear](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/clear.html), + [echo](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/echo.html), + [default](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/default.html), + [info](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/info.html), + [pause](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/pause.html), + [plugin](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/plugin.html), + [quit](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/quit.html), + [shell](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/shell.html), + [sleep](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/sleep.html), + [stopwatch](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/stopwatch.html), + [sys](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/sys.html), + [var](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/var.html), + [version](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/version.html), + [open](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/open.html), + and others +## New Features +* Support for terminals with dark background +* Support for python in variable assignments + ``` + cms set a=\"py 1 + 1\" + a='2' + ``` +* Support for executing python in a py command + ``` + cms py 1 + 1 + 2 + ``` +* Support for shell commands in the variabe value + ``` + cms set a=\!pwd + ``` +* Support for reading values from a yaml configuration file in + `~/.cloudmesh/cloudmesh.yaml` + ``` + cms set a=cloudmesh.profile.user + ``` + where it is defined as + ``` + cloudmesh: + profile: + user: gregor + ``` + +%package help +Summary: Development documents and examples for cloudmesh-cmd5 +Provides: python3-cloudmesh-cmd5-doc +%description help +EOF commands default help pause q shell sys version +banner config echo info plugin quit sleep test +clear debug gui man py set stopwatch var +``` +To see the manual page for a specific command, please use:: +``` +cms> help COMMANDNAME +``` +A full manual page is available at +* <https://cloudmesh.github.io/cloudmesh-manual/> +## CMD 5 Plugin Mechanism +Cmd5 comes with a sophisticated plugin mechanism. Commands can be readily +designed from the sys command. +The sys command can be installed either from source (as discussed previously) or +via pip +```bash +$ pip install cloudmesh-sys +``` +Once you have installed it, execute `cms help sys` to see the usage. Now you +simply can in a new directory execute the sys command as follows, where +`mycommnad` is than name of the command you like to implement. +```bash +$ mkdir mycommand +$ cd mycommand +$ cms sys command generate mycommand . +``` +A directory with the name `cloudmesh-mycommand` will be generated that contains +the template for the command. You can enter this template and modify the +implementation in the folders `cloudmesh/mycommand/api` and +`cloudmesh/mycommand/command` when installing it with +``` +$ pip install . +``` +The command will be added to the cms command> +An example for the bar command is presented at: +* [cloudmesh/bar/command/bar.py](https://github.com/cloudmesh/cloudmesh.bar/blob/main/cloudmesh/bar/command/bar.py) +It shows how simple the command definition is (bar.py):: +```bash +from cloudmesh.shell.command import command +from cloudmesh.shell.command import PluginCommand +class BarCommand(PluginCommand): + @command + def do_bar(self, args, arguments): + """ + Usage: + command -f FILE + command FILE + command list + This command does some useful things. + Arguments: + FILE a file name + Options: + -f specify the file + """ + print(arguments) +``` +An important difference to other CMD solutions is that our commands +can leverage (besides the standard definition), docopts as a way to +define the manual page. This allows us to use arguments as dict and +use simple if conditions to interpret the command. Using docopts has +the advantage that contributors are forced to think about the command +and its options and document them from the start. Previously we used +not to use docopts and argparse was used. However we noticed that for +some contributions the lead to commands that were either not properly +documented or the developers delivered ambiguous commands that +resulted in confusion and wrong usage by the users. Hence, we do +recommend that you use docopts. +The transformation is enabled by the `@command` decorator that takes +also the manual page and creates a proper help message for the shell +automatically. Thus there is no need to introduce a separate help +method as would normally be needed in CMD. +## Features +The following highlighted features are available: +* easy command integration through separate modules +* multi cloud environments (under development) though cloudmesh-cloud plugin +* openapi integration through cloudmesh-openapi plugin +* general commands as documented at in the + [manual](https://cloudmesh.github.io/cloudmesh-manual/) such as + [admin](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/admin.html), + [banner](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/banner.html), + [clear](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/clear.html), + [echo](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/echo.html), + [default](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/default.html), + [info](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/info.html), + [pause](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/pause.html), + [plugin](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/plugin.html), + [quit](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/quit.html), + [shell](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/shell.html), + [sleep](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/sleep.html), + [stopwatch](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/stopwatch.html), + [sys](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/sys.html), + [var](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/var.html), + [version](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/version.html), + [open](https://cloudmesh.github.io/cloudmesh-manual/manual/cmd5/open.html), + and others +## New Features +* Support for terminals with dark background +* Support for python in variable assignments + ``` + cms set a=\"py 1 + 1\" + a='2' + ``` +* Support for executing python in a py command + ``` + cms py 1 + 1 + 2 + ``` +* Support for shell commands in the variabe value + ``` + cms set a=\!pwd + ``` +* Support for reading values from a yaml configuration file in + `~/.cloudmesh/cloudmesh.yaml` + ``` + cms set a=cloudmesh.profile.user + ``` + where it is defined as + ``` + cloudmesh: + profile: + user: gregor + ``` + +%prep +%autosetup -n cloudmesh-cmd5-4.3.26 + +%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-cloudmesh-cmd5 -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 4.3.26-1 +- Package Spec generated @@ -0,0 +1 @@ +ce22eaa5304a2558b1932ccaeddb36c8 cloudmesh-cmd5-4.3.26.tar.gz |
