Commit Graph

61 Commits (396bedf11e4203350df903fd3988c076db24f791)

Author SHA1 Message Date
Shashank Bharadwaj 353cb210d4 Add priliminary support for perforce SCM
This patch adds very simple support for the Perforce SCM:
    https://www.perforce.com/

Although perforce is proprietary software, it's somewhat prevalent in enterprise
companies. This patch looks to provide some basic bash_it functionality that
I've come to love for git. I base everything off of two perforce commands:
    $ p4 set
This command does not require a connection the perforce server, it simply tells
us if a directory is managed by the Perforce SCM or not. In addition the
command:
    $ p4 opened

is used to provide the list of pending changes in the client and the number of
opened files in the client. The `p4 opened` command requires a connection to the
perforce server, hence it's run under a `timeout` command. The "p4 opened"
processing into it's own bash file that now has to be sourced at the top-level
bash-it.sh. Since the processing in simple the newly added: _p4-opened-counts
function returns a number of things that are not currently used, but since I had
awk open and doing the processing, I've chosen to include them in the output
anyway.

Testing:
  - Tested with the powerline-multiline theme in a few perforce based
    workspaces/clients
  - Ran:
      ❯ shellcheck themes/p4helpers.theme.bash
    and fixed all the errors
  - Ran the test suite:
      ❯ test/run
      [...]
      182 tests, 0 failures, 1 skipped
2018-02-14 17:53:09 -08:00
Dan Wendorf 150e82b221 Refactor git functionality into githelpers.theme.bash
- Add unit tests around git functionality
2017-12-18 09:05:33 -08:00
Nils Winkler a75a53b786 Merge pull request #1043 from nwinkler/enabled-global
Move enabled components to a global directory
2017-09-28 08:05:58 +02:00
pmoranga 0fc26dfad2 Add some description 2017-09-22 12:24:15 +02:00
Nils Winkler 0fe2710c61 More unit tests for loading from global directory structure 2017-09-17 21:05:59 +02:00
Nils Winkler fd637a3dc6 Loading components from global enabled directory 2017-09-17 21:05:59 +02:00
Nils Winkler fb6fcaeb06 Fixed test case where the bash_it.sh would fail with a non-zero return value
This was caused by the way the check for installed preview apps was handled.
2017-09-17 21:05:59 +02:00
Nils Winkler 2acb87e882 Fixed some more shellcheck complaints 2017-09-17 21:05:58 +02:00
Nils Winkler 6981fa091d Add tests for bash_it.sh script 2017-09-17 21:05:58 +02:00
Nils Winkler e53b5dc96e Add some TODO items 2017-09-17 21:05:58 +02:00
pmoranga f65133ac11 Fix execution of trap DEBUG on subshells 2017-09-15 16:06:12 +02:00
Rodrigo Lanza 3e60efd19d Recursive load of out of place custom config files 2017-09-14 22:50:52 +02:00
Nils Winkler 228b86f3d1 Change order of theme loading
The base theme is now loaded after plugins, since it now uses the
`command_exists` function, which is defined in the `base` plugin.
2017-06-24 17:31:31 +02:00
Adam Karim a896cb2c44 Allow for having custom scripts outside of bash-it. 2016-11-29 09:21:26 -08:00
raphaelehret 6c5e1c9dfb Replaced backticks with `$()` 2016-11-28 14:07:16 +01:00
MunifTanjim 6a601abc84 fix npm completion 2016-10-28 02:37:07 +06:00
Ron Waldon 14525efefa load theme _after_ loading any plugins, etc 2016-05-25 17:32:33 +10:00
Fahad Hossain a8124a02e8 Fix unicode line wrap problem (issue #409)
Fix unicode line wrap issue mentioned in #409
Nota bene, This fixed the problem for me on Fedora 21 and Ubuntu 15.04
Needs to be tested on other systems
2015-05-06 22:37:24 +06:00
Benjamin Brombach 4510c9ee63 fixes #343 by surrounding $HOME (which can have spaces) with quotations marks 2015-04-29 14:56:46 +02:00
Nils Winkler 95014c5ed5 Update bash_it.sh
Fixed file name after renaming.
2015-03-29 12:31:06 +02:00
Nils Winkler 27ec876a10 Fixed reload alias.
Using the same logic as in the install script.
2015-03-10 07:06:37 +00:00
Charles Celerier 75d31a07bb bash_it.sh: Patched changes made to support custom.*.bash files.
Code was added to support loading
custom.{aliases,completion,plugins}.bash from their respective
directories in 46f6701a3. The change made in that commit does not wait
until the enabled {aliases,completion,plugins}/*.bash files are loaded
before sourcing the custom.*.bash files, which was the case before. This
patch fixes any issues caused by that change by loading the enabled
*.bash files and custom *.bash files in two successive for loops.
2014-04-28 13:03:47 -04:00
Charles Celerier 46f6701a3f bash_it.sh: Added support for custom.plugins.bash and custom.completion.bash. 2014-04-23 20:13:29 -04:00
Nils Winkler be20972cf0 Merged @erichs changes for the bash-it function. 2012-05-23 09:45:36 +02:00
Erich Smith 1920629d1a update help documentation 2012-05-13 22:13:54 -04:00
Erich Smith a8fcf9f18c import composure functions 2012-04-28 00:02:31 -04:00
Eitan Adler 3fc60b5358 Fix bogus bash binary location 2012-04-17 00:24:58 -04:00
Travis Swicegood b524bb6047 Extract loading of enable-able files and add reload_* functions 2012-03-26 11:19:38 -05:00
Travis Swicegood b59ee658f7 Make sure that the new BASH_IT/BASH_IT_THEME maintains BC 2011-10-29 18:56:36 -05:00
Travis Swicegood b6d444d0ce Move this back to its original location
Not sure why this needs to be moved.  Feels like it could cause some
issues since the values defined in themes aren't available to any of the
lib or plugins.
2011-10-29 18:55:20 -05:00
Travis Swicegood ad7c1eb304 Merge remote-tracking branch 'jfsiii/master'
Conflicts:
	bash_it.sh
2011-10-29 18:37:31 -05:00
John Schulz e3194237e9 `$BASH_IT` should be conditionally defined before use.
7483c6dac3 moved one line too many.
2011-10-28 19:22:20 -04:00
John Schulz 7483c6dac3 Custom themes should be loaded *after* the base theme. 2011-10-27 19:29:34 -04:00
Jon Schewe 7d18cccae9 Remove error message when enabled directory is empty
This is fixed by checking if the file exists before trying to source it.
2011-10-09 20:44:29 -05:00
John Schulz 323ce20a2d Replace `$BASH` with `$BASH_IT` because `$BASH` is already used on *nix systems for the pathname to the executable (http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#Bash-Variables) 2011-09-20 11:07:48 -04:00
Noorul Islam K M 8e0b66899d Do not break out of the loop instead continue with other items in the list. 2011-08-22 09:26:26 -05:00
Mark Szymanski 80ec9c06ba Remove automatic creation of enabled plugins/aliases/completion 2011-07-24 13:35:43 -05:00
Mark Szymanski 9ad7964c86 Add support for multiple Jekyll sites 2011-06-24 17:49:19 -05:00
Travis Swicegood d7cfa8b394 Switch to single loop now that all directory use the same pattern
Simple refactoring -- now there's no need to source each one
independently.
2011-06-21 09:31:26 -05:00
Travis Swicegood e115b4c5af Move auto-complete code over to available -> enabled style
This continues the move toward the ability to turn things off with
everything turned on by default.
2011-06-21 09:20:40 -05:00
Mark Szymanski 78270b3ab5 Make sure custom aliases file exists before sourcing it 2011-06-17 11:22:39 -05:00
Mark Szymanski 50179fd778 Can't forget to source the custom aliases! 2011-06-13 22:05:45 -05:00
Travis Swicegood ef42010c7b Make all aliases optional (a la plugins)
This continues a pattern that was introduced in ffa45b0 and refined
further in later commits.  This enables all aliases by default, but can
be disabled by any user if they remove the appropriate
aliases/enabled/*.bash file.
2011-06-12 19:47:17 -05:00
Mark Szymanski b7a0cb6133 Added Homebrew aliases 2011-06-05 20:45:53 -05:00
Mark Szymanski 4814843948 Fix issue with plugin initalization 2011-05-27 20:57:57 -05:00
Mark Szymanski 1b268e7c28 Initialize enabled directory if it doesn't exist
This is to make bash_it work in a new install after
the plugins/enabled directory was ignored
2011-05-27 11:53:54 -05:00
Travis Swicegood ffa45b0391 Create the concept of enabled plugins
This allows users to disable a plugin without completely removing it.
Instead, they simply remove the `plugins/enabled/*.bash` file for the
plugin they want to disable.  This continues the concept of "everything
on" while providing greater flexibility to future users.

It might be a good idea to allow turning these off by default in the
future and allowing not only the `plugins/enabled/*.bash` files but also
an array of `<plugin_name>` values that would search for
`plugins/available/<plugin_name>.plugin.bash` to enable them.  That
method would make it easier for people custom tune their plugins from
within their `.bash_profile` script.
2011-05-02 23:12:50 -05:00
John Schulz 6e7f423983 Allow theming to be disabled (eg for old terminals)
* Only load a theme file if `bobby` has been set
 * Only alter `PS1` if `\[\]\[$(scm_char)\]\[\]\[$(scm_prompt_info)\]\[\]\[$(rvm_version_prompt)\] \[\]\h \[\]in \[\]\w \[\]\[\n\[\]→\[\] ` has a value
2010-11-11 11:57:47 -05:00
Robert R Evans 6c97585329 merge conflict 2010-11-10 15:49:21 -08:00
John Schulz d5645e74a0 Theme changes
* Load colors before base theme so they can be used by base theme
 * Change git-specific variables to SCM-agnostic ones
2010-11-09 23:21:19 -05:00