Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions clean_files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ lib/colors.bash
lib/helpers.bash
lib/log.bash
lib/preexec.bash
lib/preview.bash
lib/search.bash
lib/utilities.bash

Expand Down
6 changes: 5 additions & 1 deletion completion/available/bash-it.completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ function _bash-it() {
prev="${COMP_WORDS[COMP_CWORD - 1]}"
verb="${COMP_WORDS[1]}"
file_type="${COMP_WORDS[2]:-}"
candidates=('disable' 'enable' 'help' 'migrate' 'reload' 'restart' 'profile' 'doctor' 'search' 'show' 'update' 'version')
candidates=('disable' 'enable' 'help' 'migrate' 'reload' 'restart' 'preview' 'profile' 'doctor' 'search' 'show' 'update' 'version')
case "${verb}" in
show)
candidates=('aliases' 'completions' 'plugins')
Expand Down Expand Up @@ -59,6 +59,10 @@ function _bash-it() {
_compreply_candidates
;;
migrate | reload | restart | search | version) ;;
preview)
_bash-it-preview # completes itself
return 0
;;
enable | disable)
if [[ "${verb}" == "enable" ]]; then
suffix="disabled"
Expand Down
2 changes: 1 addition & 1 deletion docs/themes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Examples:
# Disable theming
export BASH_IT_THEME=""

You can easily preview the themes in your own shell using ``BASH_PREVIEW=true bash-it reload``.
You can easily preview the themes in your own shell using ``bash-it preview``.

If you've created your own custom prompts, we'd love it if you shared them with everyone else! Just submit a Pull Request.
You can see theme screenshots on `wiki/Themes <https://github.com/Bash-it/bash-it/wiki/Themes>`_.
Expand Down
8 changes: 7 additions & 1 deletion lib/helpers.bash
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ alias reload_plugins="$(_make_reload_alias plugin plugins)"

function bash-it() {
about 'Bash-it help and maintenance'
param '1: verb [one of: help | show | enable | disable | migrate | update | search | version | reload | restart | doctor ] '
param '1: verb [one of: help | show | enable | disable | migrate | update | search | preview | version | reload | restart | doctor ] '
param '2: component type [one of: alias(es) | completion(s) | plugin(s) ] or search term(s)'
param '3: specific component [optional]'
example '$ bash-it show plugins'
Expand All @@ -108,6 +108,8 @@ function bash-it() {
example '$ bash-it migrate'
example '$ bash-it update'
example '$ bash-it search [-|@]term1 [-|@]term2 ... [ -e/--enable ] [ -d/--disable ] [ -r/--refresh ] [ -c/--no-color ]'
example '$ bash-it preview'
example '$ bash-it preview essential'
example '$ bash-it version'
example '$ bash-it reload'
example '$ bash-it restart'
Expand Down Expand Up @@ -142,6 +144,10 @@ function bash-it() {
_bash-it-search "$component" "$@"
return
;;
preview)
_bash-it-preview "$component" "$@"
return
;;
update)
func="_bash-it-update-$component"
;;
Expand Down
45 changes: 30 additions & 15 deletions lib/preview.bash
Original file line number Diff line number Diff line change
@@ -1,19 +1,34 @@
if [[ "${BASH_PREVIEW:-}" ]];
then
unset BASH_PREVIEW #Prevent infinite looping
echo "
# shellcheck shell=bash
#
# Displays the prompt from each _Bash It_ theme.

Previewing Bash-it Themes
function _bash-it-preview() {
local BASH_IT_THEME BASH_IT_LOG_LEVEL
local themes IFS=$'\n' cur

"
if [[ $# -gt '0' ]]; then
themes=("$@")
else
themes=("${BASH_IT?}/themes"/*/*.theme.bash)
themes=("${themes[@]##*/}")
themes=("${themes[@]%.theme.bash}")
fi

THEMES="$BASH_IT/themes/*/*.theme.bash"
for theme in $THEMES
do
BASH_IT_THEME=${theme%.theme.bash}
BASH_IT_THEME=${BASH_IT_THEME##*/}
echo "
$BASH_IT_THEME"
echo "" | bash --init-file "${BASH_IT}/bash_it.sh" -i
done
if [[ ${COMP_CWORD:-} -gt '0' ]]; then
cur="${COMP_WORDS[COMP_CWORD]}"
read -d '' -ra COMPREPLY < <(compgen -W "all${IFS}${themes[*]}" -- "${cur}")
return
fi
printf '\n\n\t%s\n\n' "Previewing Bash-it Themes"

# shellcheck disable=SC2034
for BASH_IT_THEME in "${themes[@]}"; do
BASH_IT_LOG_LEVEL=0
bash --init-file "${BASH_IT_BASHRC:-${BASH_IT?}/bash_it.sh}" -i <<< '_bash-it-flash-term "${#BASH_IT_THEME}" "${BASH_IT_THEME}"'
done
}

if [[ -n "${BASH_PREVIEW:-}" ]]; then
_bash-it-preview "${BASH_PREVIEW}" "$@"
unset BASH_PREVIEW #Prevent infinite looping
fi
12 changes: 6 additions & 6 deletions test/completion/bash-it.completion.bats
Original file line number Diff line number Diff line change
Expand Up @@ -81,32 +81,32 @@ function __check_completion () {

@test "completion bash-it: show options" {
run __check_completion 'bash-it '
assert_line -n 0 "disable enable help migrate reload restart profile doctor search show update version"
assert_line -n 0 "disable enable help migrate reload restart preview profile doctor search show update version"
}

@test "completion bash-it: bash-ti - show options" {
run __check_completion 'bash-ti '
assert_line -n 0 "disable enable help migrate reload restart profile doctor search show update version"
assert_line -n 0 "disable enable help migrate reload restart preview profile doctor search show update version"
}

@test "completion bash-it: shit - show options" {
run __check_completion 'shit '
assert_line -n 0 "disable enable help migrate reload restart profile doctor search show update version"
assert_line -n 0 "disable enable help migrate reload restart preview profile doctor search show update version"
}

@test "completion bash-it: bashit - show options" {
run __check_completion 'bashit '
assert_line -n 0 "disable enable help migrate reload restart profile doctor search show update version"
assert_line -n 0 "disable enable help migrate reload restart preview profile doctor search show update version"
}

@test "completion bash-it: batshit - show options" {
run __check_completion 'batshit '
assert_line -n 0 "disable enable help migrate reload restart profile doctor search show update version"
assert_line -n 0 "disable enable help migrate reload restart preview profile doctor search show update version"
}

@test "completion bash-it: bash_it - show options" {
run __check_completion 'bash_it '
assert_line -n 0 "disable enable help migrate reload restart profile doctor search show update version"
assert_line -n 0 "disable enable help migrate reload restart preview profile doctor search show update version"
}

@test "completion bash-it: profile - show options" {
Expand Down