mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-23 09:10:43 +00:00
Add py-jaraco.context 2.0
jaraco.context provides context managers. WWW: https://github.com/jaraco/jaraco.context
This commit is contained in:
parent
96621c2187
commit
2851320bb9
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=490175
@ -4611,6 +4611,7 @@
|
||||
SUBDIR += py-itypes
|
||||
SUBDIR += py-jaraco
|
||||
SUBDIR += py-jaraco.classes
|
||||
SUBDIR += py-jaraco.context
|
||||
SUBDIR += py-jaraco.functools
|
||||
SUBDIR += py-jaraco.itertools
|
||||
SUBDIR += py-jaraco.logging
|
||||
|
43
devel/py-jaraco.context/Makefile
Normal file
43
devel/py-jaraco.context/Makefile
Normal file
@ -0,0 +1,43 @@
|
||||
# Created by: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= jaraco.context
|
||||
PORTVERSION= 2.0
|
||||
CATEGORIES= devel python
|
||||
MASTER_SITES= CHEESESHOP
|
||||
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
|
||||
|
||||
MAINTAINER= sunpoet@FreeBSD.org
|
||||
COMMENT= Context managers by jaraco
|
||||
|
||||
LICENSE= MIT
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.15.0:devel/py-setuptools_scm@${PY_FLAVOR}
|
||||
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jaraco>=0:devel/py-jaraco@${PY_FLAVOR}
|
||||
|
||||
USES= python
|
||||
USE_PYTHON= autoplist concurrent distutils
|
||||
|
||||
NO_ARCH= yes
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e '/jaraco.apt/d; /yg.lockfile/d' ${WRKSRC}/setup.cfg ${WRKSRC}/jaraco.context.egg-info/requires.txt
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${PYTHON_REL} < 3000
|
||||
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}contextlib2>=0:devel/py-contextlib2@${PY_FLAVOR}
|
||||
.endif
|
||||
|
||||
POST_PLIST= trim-jaraco-namespace
|
||||
|
||||
post-install:
|
||||
@${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__init__.py*
|
||||
-@${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__pycache__/__init__.*
|
||||
-@${RMDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/jaraco/__pycache__
|
||||
|
||||
trim-jaraco-namespace:
|
||||
@${REINPLACE_CMD} '/jaraco\/__init__\./d; /jaraco\/__pycache__\/__init__\./d' ${TMPPLIST}
|
||||
|
||||
.include <bsd.port.post.mk>
|
3
devel/py-jaraco.context/distinfo
Normal file
3
devel/py-jaraco.context/distinfo
Normal file
@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1546769646
|
||||
SHA256 (jaraco.context-2.0.tar.gz) = dc71afa2f0d6829234272a26aade99856db8b26d01ee6edb2b5027570c12b0d1
|
||||
SIZE (jaraco.context-2.0.tar.gz) = 11231
|
110
devel/py-jaraco.context/files/patch-jaraco-context.py
Normal file
110
devel/py-jaraco.context/files/patch-jaraco-context.py
Normal file
@ -0,0 +1,110 @@
|
||||
--- jaraco/context.py.orig 2019-01-01 15:43:21 UTC
|
||||
+++ jaraco/context.py
|
||||
@@ -13,9 +13,6 @@ try:
|
||||
except Exception:
|
||||
import contextlib as contextlib2
|
||||
|
||||
-import jaraco.apt
|
||||
-import yg.lockfile
|
||||
-
|
||||
|
||||
__metaclass__ = type
|
||||
|
||||
@@ -58,46 +55,6 @@ def data_lines_from_file(filename):
|
||||
return filter(None, strip_comments(file_lines_if_exists(filename)))
|
||||
|
||||
|
||||
-def run():
|
||||
- """
|
||||
- Run a command in the context of the system dependencies.
|
||||
- """
|
||||
- parser = argparse.ArgumentParser()
|
||||
- parser.add_argument(
|
||||
- '--deps-def',
|
||||
- default=data_lines_from_file("system deps.txt")
|
||||
- + data_lines_from_file("build deps.txt"),
|
||||
- help="A file specifying the dependencies (one per line)",
|
||||
- type=data_lines_from_file, dest="spec_deps")
|
||||
- parser.add_argument(
|
||||
- '--dep', action="append", default=[],
|
||||
- help="A specific dependency (multiple allowed)", dest="deps")
|
||||
- parser.add_argument(
|
||||
- 'command', type=shlex.split,
|
||||
- default=shlex.split("python2.7 setup.py test"),
|
||||
- help="Command to invoke in the context of the dependencies")
|
||||
- parser.add_argument(
|
||||
- '--do-not-remove', default=False, action="store_true",
|
||||
- help="Keep any installed packages")
|
||||
- parser.add_argument(
|
||||
- '--aggressively-remove', default=False,
|
||||
- action="store_true",
|
||||
- help="When removing packages, also remove those automatically installed"
|
||||
- " as dependencies")
|
||||
- parser.add_argument(
|
||||
- '-l', '--log-level', default=logging.INFO,
|
||||
- type=log_level, help="Set log level (DEBUG, INFO, WARNING, ERROR)")
|
||||
- args = parser.parse_args()
|
||||
- logging.basicConfig(level=args.log_level)
|
||||
- context = dependency_context(
|
||||
- args.spec_deps + args.deps,
|
||||
- aggressively_remove=args.aggressively_remove)
|
||||
- with context as to_remove:
|
||||
- if args.do_not_remove:
|
||||
- del to_remove[:]
|
||||
- raise SystemExit(subprocess.Popen(args.command).wait())
|
||||
-
|
||||
-
|
||||
def log_level(level_string):
|
||||
"""
|
||||
Return a log level for a string
|
||||
@@ -106,50 +63,6 @@ def log_level(level_string):
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
-def dependency_context(package_names, aggressively_remove=False):
|
||||
- """
|
||||
- Install the supplied packages and yield. Finally, remove all packages
|
||||
- that were installed.
|
||||
- Currently assumes 'aptitude' is available.
|
||||
- """
|
||||
- installed_packages = []
|
||||
- log = logging.getLogger(__name__)
|
||||
- try:
|
||||
- if not package_names:
|
||||
- logging.debug('No packages requested')
|
||||
- if package_names:
|
||||
- lock = yg.lockfile.FileLock(
|
||||
- '/tmp/.pkg-context-lock',
|
||||
- timeout=30 * 60)
|
||||
- log.info('Acquiring lock to perform install')
|
||||
- lock.acquire()
|
||||
- log.info('Installing ' + ', '.join(package_names))
|
||||
- output = subprocess.check_output(
|
||||
- ['sudo', 'aptitude', 'install', '-y'] + package_names,
|
||||
- stderr=subprocess.STDOUT,
|
||||
- )
|
||||
- log.debug('Aptitude output:\n%s', output)
|
||||
- installed_packages = jaraco.apt.parse_new_packages(
|
||||
- output,
|
||||
- include_automatic=aggressively_remove)
|
||||
- if not installed_packages:
|
||||
- lock.release()
|
||||
- log.info('Installed ' + ', '.join(installed_packages))
|
||||
- yield installed_packages
|
||||
- except subprocess.CalledProcessError:
|
||||
- log.error("Error occurred installing packages")
|
||||
- raise
|
||||
- finally:
|
||||
- if installed_packages:
|
||||
- log.info('Removing ' + ','.join(installed_packages))
|
||||
- subprocess.check_call(
|
||||
- ['sudo', 'aptitude', 'remove', '-y'] + installed_packages,
|
||||
- stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
|
||||
- )
|
||||
- lock.release()
|
||||
-
|
||||
-
|
||||
-@contextlib.contextmanager
|
||||
def pushd(dir):
|
||||
orig = os.getcwd()
|
||||
os.chdir(dir)
|
3
devel/py-jaraco.context/pkg-descr
Normal file
3
devel/py-jaraco.context/pkg-descr
Normal file
@ -0,0 +1,3 @@
|
||||
jaraco.context provides context managers.
|
||||
|
||||
WWW: https://github.com/jaraco/jaraco.context
|
Loading…
Reference in New Issue
Block a user