xonsh

Python-powered, cross-platform, Unix-gazing shell.

OTHER License

Downloads
69K
Stars
8K
Committers
330

Bot releases are hidden (Show)

xonsh - v0.3.0

Published by scopatz over 8 years ago

Added:

  • and, or, &&, || have been added as subprocess logical operators,
    by popular demand!
  • Subprocesses may be negated with not and grouped together with parentheses.
  • New framework for writing xonsh extentions, called xontribs.
  • Added a new shell type 'none', used to avoid importing readline or
    prompt_toolkit when running scripts or running a single command.
  • New: sudo functionality on Windows through an alias
  • Automatically enhance colors for readability in the default terminal (cmd.exe)
    on Windows. This functionality can be enabled/disabled with the
    $INTENSIFY_COLORS_ON_WIN environment variable.
  • Added Ellipsis lookup to __xonsh_env__ to allow environment variable checks, e.g. 'HOME' in ${...}
  • Added an option to update os.environ every time the xonsh environment changes.
    This is disabled by default but can be enabled by setting $UPDATE_OS_ENVIRON to
    True.
  • Added Windows 'cmd.exe' as a foreign shell. This gives xonsh the ability to source
    Windows Batch files (.bat and .cmd). Calling source-cmd script.bat or the
    alias source-bat script.bat will call the bat file and changes to the
    environment variables will be reflected in xonsh.
  • Added an alias for the conda environment activate/deactivate batch scripts when
    running the Anaconda python distribution on Windows.
  • Added a menu entry to launch xonsh when installing xonsh from a conda package
  • Added a new which alias that supports both regular which and also searches
    through xonsh aliases. A pure python implementation of which is used. Thanks
    to Trent Mick. https://github.com/trentm/which/
  • Added support for prompt toolkit v1.0.0.
  • Added $XONSH_CACHE_SCRIPTS and $XONSH_CACHE_EVERYTHING environment
    variables to control caching of scripts and interactive commands. These can
    also be controlled by command line options --no-script-cache and
    --cache-everything when starting xonsh.
  • Added a workaround to allow ctrl-c to interrupt reverse incremental search in
    the readline shell

Changed:

  • Running scripts through xonsh (or running a single command with -c) no
    longer runs the user's rc file, unless the --login option is specified.
    Also avoids loading aliases and environments from foreign shells, as well as
    loading bash completions.
  • rc files are now compiled and cached, to avoid re-parsing when they haven't
    changed. Scripts are also compiled and cached, and there is the option to
    cache interactive commands.
  • Left and Right arrows in the prompt_toolkit shell now wrap in multiline
    environments
  • Regexpath matching with backticks, now returns an empty list in python mode.
  • Pygments added as a dependency for the conda package
  • Foreign shells now allow for setting exit-on-error commands before and after
    all other commands via the seterrprevcmd and seterrpostcmd arguments.
    Sensinble defaults are provided for existing shells.
  • PLY is no longer a external dependency but is bundled in xonsh/ply. Xonsh can
    therefore run without any external dependencies, although having prompt-toolkit
    recommended.
  • Provide better user feedback when running which in a platform that doesn't
    provide it (e.g. Windows).
  • The lexer now uses a custom tokenizer that handles regex globs in the proper
    way.

Fixed:

  • Fixed bug with loading prompt-toolkit shell < v0.57.
  • Fixed bug with prompt-toolkit completion when the cursor is not at the end of
    the line.
  • Aliases will now evaluate enviornment variables and other expansions
    at execution time rather than passing through a literal string.
  • Fixed environment variables from os.environ not beeing loaded when a running
    a script
  • The readline shell will now load the inputrc files.
  • Fixed bug that prevented source-alias from working.
  • Now able to ^C the xonfig wizard on start up.
  • Fixed deadlock on Windows when runing subprocess that generates enough output
    to fill the OS pipe buffer.
  • Sourcing foreign shells will now return a non-zero exit code if the
    source operation failed for some reason.
  • Fixed PermissionError when running commands in directories without read permissions
  • Prevent Windows fixups from overriding environment vars in static config
  • Fixed Optional Github project status to reflect added/removed files via git_dirty_working_directory()
  • Fixed xonsh.exe launcher on Windows, when Python install directory has a space in it
  • Fixed $CDPATH to support ~ and environments variables in its items
xonsh - v0.2.0 Relase

Published by scopatz about 9 years ago

xonsh -

Published by scopatz over 9 years ago

Xonsh 0.1 Release Notes

xonsh is a Python-ish, BASHwards-compatible shell language and command prompt. The language is a superset of Python 3.4 with additional shell primitives that you are used to from BASH and IPython. xonsh is meant for the daily use of experts and novices alike.

Features include:

  • Naturally typed environment variables
  • Inherits the environment from BASH
  • Uses BASH completion for subprocess commands
  • Regular expression filename globbing
  • Its own PLY-based lexer and parser
  • xonsh code parses into a Python AST
  • You can do all the normal Python things, like arithmetic and importing
  • Captured and uncaptured subprocesses
  • Pipes, redirection, and non-blocking subprocess syntax support
  • Help and superhelp with ? and ??
  • Command aliasing
  • Multiline input, unlike ed
  • History matching like in IPython
  • Color prompts
  • Low system overhead

Feedback, bug reports, and pull requests are always welcome!

Installation

You can install xonsh using conda, pip, or from source.

conda::

$ conda install -c https://conda.binstar.org/scopatz xonsh

pip::

$ pip install xonsh

source: Download the source from github (https://github.com/scopatz/xonsh) or the zip file (https://github.com/scopatz/xonsh/archive/master.zip), then run the following from the source directory::

$ python setup.py install

If you run into any problems, please let us know!

Dependencies

Polyphemus currently has the following external dependencies,

Run Time:

1. Python v3.4+
2. PLY

Contributing

We highly encourage contributions to xonsh! If you would like to contribute, it is as easy as forking the repository on GitHub, making your changes, and issuing a pull request. If you have any questions about this process don't hesitate to ask the mailing list ([email protected]).

Contact Us

If you have questions or comments, please send them to the mailing list [email protected], contact the author directly, or open an issue on GitHub.

Join the mailing list here: https://groups.google.com/forum/#!forum/xonsh

Helpful Links

Authors

This release contains code written by the following people (in alphabetical order):

  • Anthony Scopatz