%global _empty_manifest_terminate_build 0 Name: python-sceptre-s3-packager Version: 0.4.0 Release: 1 Summary: S3 packager for Sceptre 2 License: MIT License URL: https://github.com/henrist/sceptre-s3-packager Source0: https://mirrors.aliyun.com/pypi/web/packages/2b/09/283db3fc1735a779322e97005ebceb6df0f4648f3927cd368868c5277b68/sceptre_s3_packager-0.4.0.tar.gz BuildArch: noarch Requires: python3-sceptre %description # sceptre-s3-packager [![PyPI version](https://badge.fury.io/py/sceptre-s3-packager.svg)](https://badge.fury.io/py/sceptre-s3-packager) ![PyPI - Downloads](https://img.shields.io/pypi/dm/sceptre-s3-packager) Hook and resolver for [Sceptre](https://sceptre.cloudreach.com/latest/) `v2` to package code dependencies and uploading it to an S3 bucket for usage in a template. Inspired by https://github.com/cloudreach/sceptre-zip-code-s3 ## Getting started Only Python 3 is actively being supported. Install using pip: ```bash pip install sceptre-s3-packager ``` Use the hook and resolver in your template config: ```yaml template_path: ... hooks: before_create: - !sceptre_s3_upload ./directory-to-zip-to-s3 before_update: - !sceptre_s3_upload ./directory-to-zip-to-s3 sceptre_user_data: Code: S3Bucket: my-s3-bucket S3Key: !sceptre_s3_key ./directory-to-zip-to-s3 ``` Use the data in the template, e.g. by using Jinja2 template with something like: ```yaml MyLambda: Type: AWS::Lambda::Function Properties: Code: S3Bucket: {{ sceptre_user_data.Code.S3Bucket }} S3Key: {{ sceptre_user_data.Code.S3Key }} ``` ## Usage Hook: - `!sceptre_s3_upload ` (reads `S3Bucket` from `sceptre_user_data.Code.S3Bucket`) - `!sceptre_s3_upload ^^` Resolver: - `!sceptre_s3_key ` (returns a path where the packaged directory is uploaded, e.g. `sceptre/68063a99bb6d95401d688d28f19ee412`) ## Details The hook will zip the contents of the directory and upload it as `sceptre/MD5HASH` to the S3-bucket, with `MD5HASH` being md5 hash of the zip file content. When zipping all files will be given a fixed modification time, so that only the contents of the files are used to determine the upload file and cause invalidation on changes. %package -n python3-sceptre-s3-packager Summary: S3 packager for Sceptre 2 Provides: python-sceptre-s3-packager BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-sceptre-s3-packager # sceptre-s3-packager [![PyPI version](https://badge.fury.io/py/sceptre-s3-packager.svg)](https://badge.fury.io/py/sceptre-s3-packager) ![PyPI - Downloads](https://img.shields.io/pypi/dm/sceptre-s3-packager) Hook and resolver for [Sceptre](https://sceptre.cloudreach.com/latest/) `v2` to package code dependencies and uploading it to an S3 bucket for usage in a template. Inspired by https://github.com/cloudreach/sceptre-zip-code-s3 ## Getting started Only Python 3 is actively being supported. Install using pip: ```bash pip install sceptre-s3-packager ``` Use the hook and resolver in your template config: ```yaml template_path: ... hooks: before_create: - !sceptre_s3_upload ./directory-to-zip-to-s3 before_update: - !sceptre_s3_upload ./directory-to-zip-to-s3 sceptre_user_data: Code: S3Bucket: my-s3-bucket S3Key: !sceptre_s3_key ./directory-to-zip-to-s3 ``` Use the data in the template, e.g. by using Jinja2 template with something like: ```yaml MyLambda: Type: AWS::Lambda::Function Properties: Code: S3Bucket: {{ sceptre_user_data.Code.S3Bucket }} S3Key: {{ sceptre_user_data.Code.S3Key }} ``` ## Usage Hook: - `!sceptre_s3_upload ` (reads `S3Bucket` from `sceptre_user_data.Code.S3Bucket`) - `!sceptre_s3_upload ^^` Resolver: - `!sceptre_s3_key ` (returns a path where the packaged directory is uploaded, e.g. `sceptre/68063a99bb6d95401d688d28f19ee412`) ## Details The hook will zip the contents of the directory and upload it as `sceptre/MD5HASH` to the S3-bucket, with `MD5HASH` being md5 hash of the zip file content. When zipping all files will be given a fixed modification time, so that only the contents of the files are used to determine the upload file and cause invalidation on changes. %package help Summary: Development documents and examples for sceptre-s3-packager Provides: python3-sceptre-s3-packager-doc %description help # sceptre-s3-packager [![PyPI version](https://badge.fury.io/py/sceptre-s3-packager.svg)](https://badge.fury.io/py/sceptre-s3-packager) ![PyPI - Downloads](https://img.shields.io/pypi/dm/sceptre-s3-packager) Hook and resolver for [Sceptre](https://sceptre.cloudreach.com/latest/) `v2` to package code dependencies and uploading it to an S3 bucket for usage in a template. Inspired by https://github.com/cloudreach/sceptre-zip-code-s3 ## Getting started Only Python 3 is actively being supported. Install using pip: ```bash pip install sceptre-s3-packager ``` Use the hook and resolver in your template config: ```yaml template_path: ... hooks: before_create: - !sceptre_s3_upload ./directory-to-zip-to-s3 before_update: - !sceptre_s3_upload ./directory-to-zip-to-s3 sceptre_user_data: Code: S3Bucket: my-s3-bucket S3Key: !sceptre_s3_key ./directory-to-zip-to-s3 ``` Use the data in the template, e.g. by using Jinja2 template with something like: ```yaml MyLambda: Type: AWS::Lambda::Function Properties: Code: S3Bucket: {{ sceptre_user_data.Code.S3Bucket }} S3Key: {{ sceptre_user_data.Code.S3Key }} ``` ## Usage Hook: - `!sceptre_s3_upload ` (reads `S3Bucket` from `sceptre_user_data.Code.S3Bucket`) - `!sceptre_s3_upload ^^` Resolver: - `!sceptre_s3_key ` (returns a path where the packaged directory is uploaded, e.g. `sceptre/68063a99bb6d95401d688d28f19ee412`) ## Details The hook will zip the contents of the directory and upload it as `sceptre/MD5HASH` to the S3-bucket, with `MD5HASH` being md5 hash of the zip file content. When zipping all files will be given a fixed modification time, so that only the contents of the files are used to determine the upload file and cause invalidation on changes. %prep %autosetup -n sceptre_s3_packager-0.4.0 %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-sceptre-s3-packager -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Jun 09 2023 Python_Bot - 0.4.0-1 - Package Spec generated