Bash is run either in interactive mode (e.g. in a terminal) or
non-interactive mode (e.g. on an SSH server handling an SCP request). In
the latter example, any output performed by bash-it's actions will be
interpreted as SCP reply on the client side, typically leading to failed
transfers. This is a well-known limitation of the SCP:
https://bugzilla.redhat.com/show_bug.cgi?id=20527.
In bash's own bashrc example, the first lines of code query for the mode
and return early if it's non-interactive:
http://git.savannah.gnu.org/cgit/bash.git/tree/examples/startup-files/bashrc?h=bash-5.0#n1.
This practice is adopted by Linux distributions (e.g. Ubuntu) and
probably other systems.
Current mode can be queried as described here:
https://www.gnu.org/software/bash/manual/html_node/Is-this-Shell-Interactive_003f.html.
Copy the according lines from Debian stretch's default .bashrc (as found
in https://packages.debian.org/stretch/bash under /etc/skel/.bashrc) to
the bash-it profile template to disable bash-it for non-interactive
shells.
As a side effect, this change makes SCP faster since the server doesn't
need to run any bash-it code in context of SCP handling.
This allows the user to see only last level of the current path (if dirname is longer than 8 chars),
and only first word of the ongoing command line if it's longer than 8 chars.
Removed Jekyll template option - it does not really belong in Bash-it.
Removed the all/some/none options. Most people selected `all` and then
complained about things not working, or error messages being shown. This
was mostly due to missing dependencies.
The installer now uses a 'sane' default - it just enables completion for
the 'bash-it' command and nothing else. At the end of the installation,
it prints a message explaining the ways to see the available plugins and
how to enable them.
Updated readme with install options
These settings shouldn't be in the profile template, as they only make sense when used with nginx.
If you're using nginx, you can enable the nginx plugin.