diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 21:32:54 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 21:32:54 +0000 |
commit | 5a4f1047f2176bb4a4a929c34539f93dd45e5fc2 (patch) | |
tree | 23214a7daf8b7645748213dab7469c9135e2905f /python-cas.spec | |
parent | 6b72b16d3861a3a0c46b693bafeaf7f7af42b4a2 (diff) |
automatic import of python-cas
Diffstat (limited to 'python-cas.spec')
-rw-r--r-- | python-cas.spec | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/python-cas.spec b/python-cas.spec new file mode 100644 index 0000000..6d231ca --- /dev/null +++ b/python-cas.spec @@ -0,0 +1,271 @@ +%global _empty_manifest_terminate_build 0 +Name: python-cas +Version: 1.0.10 +Release: 1 +Summary: Chaos Automation System +License: mit +URL: https://github.com/ChaosInitiative/CAS +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/86/e9/b03b3162dae5e3ae808437e4665695bcbd519af41758d7348ad41b83bf69/cas-1.0.10.tar.gz +BuildArch: noarch + +Requires: python3-jsonschema +Requires: python3-simpleeval +Requires: python3-appdirs +Requires: python3-dotmap +Requires: python3-tqdm +Requires: python3-vdf +Requires: python3-requests + +%description +# Chaos Automation System + +Chaos Automation System (CAS) is a toolkit for automating complex sequences of tasks; generally, Source engine tasks. + +## Usage +CAS, by default, expects a certain folder structure to be present. You should have a root folder for your project, containing a `content` folder and a `game` folder. The former contains your source content, while your latter contains your compiled assets and binaries. + +To configure which assets to build, an `cas.json` file must be present in your `content` folder. An example of this is present in the `examples` folder of this repository, which you can copy if you want to provide a template for your project. + +You must run CAS from inside your project's root tree; if you need to run it from somewhere else, use the `--path` argument. + +Example: +``` +casbuild --build-category assets +``` + +## Configuration +CAS executes a series of discrete programs called subsystems. +An example of a subsystem is `vpk` - this allows packing several files into one or more VPK archives. + +### Build Types and Categories +The **build type** (`--build-type`) selects the type of the build you want to perform. This may be one of three values: trunk, staging, or release, and mirrors a multi-branch Git philosophy. The behaviour of this differs depending on the asset or subsystem implementation. + +The **build categories** (`--build-categories`) define whether assets should be built and what subsystems should run, if any. The default is to build all categories if one is not explicitly specified. If a category different from `assets` is specified, assets will not be built. The categories of a subsystem can be defined with the `categories` key. + +### Expressions and Conditions +CAS has support for conditional statements to include or exclude segments of configuration whenever a condition is met. Specify the conditions inside the block you want to set as a list with the special `@conditions` key. + + +CAS also has support for custom expressions with `@expressions`, to dynamically modify parts of configuration on the fly. Specify this as a set with each key you want to modify. It uses the same syntax as conditions. + +Example: +```json +"module": "cas.subsystems.syncfolder", +"category": "publish", +"options": { + "from": "$(path.root)/game", + "to": "$(path.root)/publish.tmp", + + "create": true, + "files": [ "!.git" ], + + "@conditions": ["args.build_type != 'trunk'"] +} +``` + +Note that expressions are always evaluated before conditions in the same block. + +### Local scope +Inside conditions and macros a specific set of names are available in the local scope: +- `parent`, the parent object of this value +- `context`, the current resolver scope +- `path`, `args`, `assets`, and `subsystems` from the configuration file +- `env`, a dict containing `platform`, the system platform, and `cpu_count`, the number of system CPUs + +## Installation +You can install CAS with `pip`. Example: `python3 -m pip install cas` + +## Development +- To install, run `python3 ./setup.py develop --user`. +- To remove the development link, run `python3 ./setup.py develop --user -u`. +- To publish to PyPi, run `publish.sh`. + + + + +%package -n python3-cas +Summary: Chaos Automation System +Provides: python-cas +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-cas +# Chaos Automation System + +Chaos Automation System (CAS) is a toolkit for automating complex sequences of tasks; generally, Source engine tasks. + +## Usage +CAS, by default, expects a certain folder structure to be present. You should have a root folder for your project, containing a `content` folder and a `game` folder. The former contains your source content, while your latter contains your compiled assets and binaries. + +To configure which assets to build, an `cas.json` file must be present in your `content` folder. An example of this is present in the `examples` folder of this repository, which you can copy if you want to provide a template for your project. + +You must run CAS from inside your project's root tree; if you need to run it from somewhere else, use the `--path` argument. + +Example: +``` +casbuild --build-category assets +``` + +## Configuration +CAS executes a series of discrete programs called subsystems. +An example of a subsystem is `vpk` - this allows packing several files into one or more VPK archives. + +### Build Types and Categories +The **build type** (`--build-type`) selects the type of the build you want to perform. This may be one of three values: trunk, staging, or release, and mirrors a multi-branch Git philosophy. The behaviour of this differs depending on the asset or subsystem implementation. + +The **build categories** (`--build-categories`) define whether assets should be built and what subsystems should run, if any. The default is to build all categories if one is not explicitly specified. If a category different from `assets` is specified, assets will not be built. The categories of a subsystem can be defined with the `categories` key. + +### Expressions and Conditions +CAS has support for conditional statements to include or exclude segments of configuration whenever a condition is met. Specify the conditions inside the block you want to set as a list with the special `@conditions` key. + + +CAS also has support for custom expressions with `@expressions`, to dynamically modify parts of configuration on the fly. Specify this as a set with each key you want to modify. It uses the same syntax as conditions. + +Example: +```json +"module": "cas.subsystems.syncfolder", +"category": "publish", +"options": { + "from": "$(path.root)/game", + "to": "$(path.root)/publish.tmp", + + "create": true, + "files": [ "!.git" ], + + "@conditions": ["args.build_type != 'trunk'"] +} +``` + +Note that expressions are always evaluated before conditions in the same block. + +### Local scope +Inside conditions and macros a specific set of names are available in the local scope: +- `parent`, the parent object of this value +- `context`, the current resolver scope +- `path`, `args`, `assets`, and `subsystems` from the configuration file +- `env`, a dict containing `platform`, the system platform, and `cpu_count`, the number of system CPUs + +## Installation +You can install CAS with `pip`. Example: `python3 -m pip install cas` + +## Development +- To install, run `python3 ./setup.py develop --user`. +- To remove the development link, run `python3 ./setup.py develop --user -u`. +- To publish to PyPi, run `publish.sh`. + + + + +%package help +Summary: Development documents and examples for cas +Provides: python3-cas-doc +%description help +# Chaos Automation System + +Chaos Automation System (CAS) is a toolkit for automating complex sequences of tasks; generally, Source engine tasks. + +## Usage +CAS, by default, expects a certain folder structure to be present. You should have a root folder for your project, containing a `content` folder and a `game` folder. The former contains your source content, while your latter contains your compiled assets and binaries. + +To configure which assets to build, an `cas.json` file must be present in your `content` folder. An example of this is present in the `examples` folder of this repository, which you can copy if you want to provide a template for your project. + +You must run CAS from inside your project's root tree; if you need to run it from somewhere else, use the `--path` argument. + +Example: +``` +casbuild --build-category assets +``` + +## Configuration +CAS executes a series of discrete programs called subsystems. +An example of a subsystem is `vpk` - this allows packing several files into one or more VPK archives. + +### Build Types and Categories +The **build type** (`--build-type`) selects the type of the build you want to perform. This may be one of three values: trunk, staging, or release, and mirrors a multi-branch Git philosophy. The behaviour of this differs depending on the asset or subsystem implementation. + +The **build categories** (`--build-categories`) define whether assets should be built and what subsystems should run, if any. The default is to build all categories if one is not explicitly specified. If a category different from `assets` is specified, assets will not be built. The categories of a subsystem can be defined with the `categories` key. + +### Expressions and Conditions +CAS has support for conditional statements to include or exclude segments of configuration whenever a condition is met. Specify the conditions inside the block you want to set as a list with the special `@conditions` key. + + +CAS also has support for custom expressions with `@expressions`, to dynamically modify parts of configuration on the fly. Specify this as a set with each key you want to modify. It uses the same syntax as conditions. + +Example: +```json +"module": "cas.subsystems.syncfolder", +"category": "publish", +"options": { + "from": "$(path.root)/game", + "to": "$(path.root)/publish.tmp", + + "create": true, + "files": [ "!.git" ], + + "@conditions": ["args.build_type != 'trunk'"] +} +``` + +Note that expressions are always evaluated before conditions in the same block. + +### Local scope +Inside conditions and macros a specific set of names are available in the local scope: +- `parent`, the parent object of this value +- `context`, the current resolver scope +- `path`, `args`, `assets`, and `subsystems` from the configuration file +- `env`, a dict containing `platform`, the system platform, and `cpu_count`, the number of system CPUs + +## Installation +You can install CAS with `pip`. Example: `python3 -m pip install cas` + +## Development +- To install, run `python3 ./setup.py develop --user`. +- To remove the development link, run `python3 ./setup.py develop --user -u`. +- To publish to PyPi, run `publish.sh`. + + + + +%prep +%autosetup -n cas-1.0.10 + +%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-cas -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.10-1 +- Package Spec generated |