Name: xonsh Version: 0.14.1 Release: %autorelease Summary: A general purpose, Python-ish shell # xonsh is BSD-2-Clause. # xonsh/winutils.py and xonsh/xoreutils/_which.py contain MIT code. License: BSD-2-Clause AND MIT URL: https://xon.sh Source0: %pypi_source BuildArch: noarch Patch1: 0001-Do-not-use-custom-xinstall.patch BuildRequires: python3-devel # needed for tests: BuildRequires: %{py3_dist ply} BuildRequires: %{py3_dist prompt-toolkit} BuildRequires: %{py3_dist pygments} BuildRequires: %{py3_dist pyte} BuildRequires: %{py3_dist pytest} BuildRequires: %{py3_dist pytest-mock} BuildRequires: %{py3_dist pytest-subprocess} BuildRequires: %{py3_dist pytest-rerunfailures} BuildRequires: %{py3_dist virtualenv} BuildRequires: bash-completion BuildRequires: git-core BuildRequires: man-db BuildRequires: /usr/bin/python # required by "ptk" extra: Requires: %{py3_dist prompt-toolkit} Requires: %{py3_dist pygments} Requires: %{py3_dist pyperclip} # required by "setproctitle" extra: Requires: %{py3_dist setproctitle} # required by "full" extra: Requires: %{py3_dist distro} Requires: %{py3_dist ujson} # unbundled in prep Requires: %{py3_dist ply} # required for vox Requires: %{py3_dist virtualenv} Recommends: bash-completion %description xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt. The language is a superset of Python 3.6+ with additional shell primitives. xonsh (pronounced conch) is meant for the daily use of experts and novices alike. %prep %autosetup -p1 -n %{name}-%{version} # Unbundle ply sed --in-place '/xonsh\.ply/d' setup.py sed --in-place '/xonsh\.ply/d' pyproject.toml sed --in-place -e 's/xonsh\.ply\.ply/ply/' \ -e 's/from xonsh\.ply //' \ $(grep -rl --include='*.py' 'xonsh\.ply') rm -r xonsh/ply # Remove shebang. sed --in-place "s:#!\s*/usr.*::" xonsh/xoreutils/_which.py xonsh/webconfig/main.py %generate_buildrequires %pyproject_buildrequires -r %build %pyproject_wheel %py3_build %install %pyproject_install %pyproject_save_files xompletions xonsh xontrib %check # Altering PYTHONPATH makes the tests importable. %global __pytest PYTHONPATH="$PYTHONPATH:$(pwd)" %{python3} -m xonsh run-tests.xsh test -- # TODO: broken tests %pytest -v -k "not test_complete_dots and not test_equal_sign_arg and not test_is_tok_color_dict and not test_vox" %post if [ "$1" -ge 1 ]; then if [ ! -f %{_sysconfdir}/shells ] ; then touch %{_sysconfdir}/shells fi for binpath in %{_bindir} /bin; do if ! grep -q "^${binpath}/xonsh$" %{_sysconfdir}/shells; then (cat %{_sysconfdir}/shells; echo "$binpath/xonsh") > %{_sysconfdir}/shells.new mv %{_sysconfdir}/shells{.new,} fi done fi %postun if [ "$1" = 0 ] && [ -f %{_sysconfdir}/shells ] ; then sed -e '\!^%{_bindir}/xonsh$!d' -e '\!^/bin/xonsh$!d' < %{_sysconfdir}/shells > %{_sysconfdir}/shells.new mv %{_sysconfdir}/shells{.new,} fi %files -f %{pyproject_files} %doc README.rst CHANGELOG.rst %license license %{_bindir}/xonsh %{_bindir}/xonsh-cat %{_bindir}/xonsh-uname %{_bindir}/xonsh-uptime %changelog %autochangelog