super_prompt 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/super_prompt +15 -0
- data/lib/.super_prompt +104 -0
- data/lib/super_prompt.rb +0 -0
- metadata +52 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 89c869eccf3a0043d9cc1ec30a7e76f81bfc7a97
|
4
|
+
data.tar.gz: 8e05998ca0180cb6cf0888ee1cc09c1d750b38ad
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 87e1d1b96899d5e6e0219f762910542b373b5ce4faf6276d4478de216e1839254d8215a84b44d8d002267c8e7111bbdaba456a6ba5f01984c79676ae7eb75075
|
7
|
+
data.tar.gz: 356bec91a0a1054804fa9c818d869ae50a5d88705aae54d1b484d6d2d66b3752b60df731a5bc8c22d01e879867bf313eff6ac863a0941fbc885658d4374fa39f
|
data/bin/super_prompt
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fileutils.rb'
|
4
|
+
|
5
|
+
`sed -i 's/\s*source \.super_prompt\s*//g' ~/.bash_profile`
|
6
|
+
`sed -i 's/\s*source \.super_prompt\s*//g' ~/.bashrc`
|
7
|
+
|
8
|
+
`printf '\nsource .super_prompt\n' >> ~/.bash_profile`
|
9
|
+
`printf '\nsource .super_prompt\n' >> ~/.bashrc`
|
10
|
+
|
11
|
+
dest_path = `echo $HOME`.strip + '/.super_prompt'
|
12
|
+
source_path = File.expand_path(File.dirname(__FILE__)).chomp('bin') + 'lib/.super_prompt'
|
13
|
+
|
14
|
+
|
15
|
+
FileUtils.cp(source_path, dest_path)
|
data/lib/.super_prompt
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
# customize prompt
|
2
|
+
|
3
|
+
# function to generate git branch name
|
4
|
+
parse_git_branch() {
|
5
|
+
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1:/'
|
6
|
+
}
|
7
|
+
|
8
|
+
firstPrompt='true'
|
9
|
+
PROMPT_COMMAND=super_prompt
|
10
|
+
|
11
|
+
function super_prompt() {
|
12
|
+
local lastCommandStatus=$? # capture status of last command
|
13
|
+
|
14
|
+
# variables to make modification easier
|
15
|
+
|
16
|
+
|
17
|
+
local bell='' # '\a' for bell or '' for no bell
|
18
|
+
local containerColor='0;33' # color of the container for the information header
|
19
|
+
local containerStartSymbol='[' # symbol used at the start of the container for the information header
|
20
|
+
local containerEndSymbol=']\n' # symbol used at the end of the container for the information header
|
21
|
+
local containerDivisionSymbol='|' # symbol used as dividers between sections of the container
|
22
|
+
local dateColor='1;33' # date color
|
23
|
+
local dateFormat='\d, $(date +'%Y')' # date format
|
24
|
+
local timeColor='1;35' # time color
|
25
|
+
local timeFormat='\@' # time format
|
26
|
+
local bashColor='1;36' # Bash version color
|
27
|
+
local bashFormat='Bash v\V' # Bash version format
|
28
|
+
local userColor='1;34' # color for user and host
|
29
|
+
local userFormat='\u@\H' # user format
|
30
|
+
local commandColor='1;35' # command index color
|
31
|
+
local commandFormat='C\#' # command index format
|
32
|
+
local historyColor='1;36' # history index color
|
33
|
+
local historyFormat='H\!' # history index format
|
34
|
+
local pathColor='1;34' # color for path
|
35
|
+
local pathFormat='$PWD' # format for path
|
36
|
+
local successSymbol='✔' # symbol to display when last command succeeds
|
37
|
+
local successColor='1;32' # color for success symbol
|
38
|
+
local failureSymbol='✗' # symbol to display when last command fails
|
39
|
+
local failureColor='1;31' # color for failure symbol
|
40
|
+
local warningColor='1;31' # warning color
|
41
|
+
local warningSymbol='☢' # warning symbol
|
42
|
+
local allClearColor='1;32' # all clear color
|
43
|
+
local allClearSymbol='☀' # all clear symbol
|
44
|
+
local gitColor='1;31' # color for git branch
|
45
|
+
|
46
|
+
# end modification variables
|
47
|
+
|
48
|
+
# container definition
|
49
|
+
containerStart='\e['$containerColor'm'$containerStartSymbol'\e[m' # start of container
|
50
|
+
containerEnd='\e['$containerColor'm'$containerEndSymbol'\e[m' # end of container
|
51
|
+
containerDivision='\e['$containerColor'm'$containerDivisionSymbol'\e[m' # dividers between sections of container
|
52
|
+
|
53
|
+
local primaryPrompt='' # initialize primary prompt
|
54
|
+
local seconaryPrompt='' # intialize secondary prompt
|
55
|
+
|
56
|
+
# an information header defined and written to environment variable PS1 when the terminal is first opened, the user changes, or this file is sourced.
|
57
|
+
|
58
|
+
if [ $firstPrompt == 'true' ]
|
59
|
+
|
60
|
+
then
|
61
|
+
|
62
|
+
primaryPrompt+=$containerStart'\e['$dateColor'm'$dateFormat'\e[m'$containerDivision'\e['$timeColor'm'$timeFormat'\e[m'$containerDivision'\e['$bashColor'm'$bashFormat'\e[m'$containerDivision'\e['$userColor'm'$userFormat'\e[m'$containerEnd
|
63
|
+
|
64
|
+
firstPrompt='false'
|
65
|
+
|
66
|
+
fi
|
67
|
+
|
68
|
+
# write a header to PS1 consisting of command and history numbers and path
|
69
|
+
primaryPrompt+=$containerStart$bell'\e['$commandColor'm'$commandFormat'\e[m'$containerDivision'\e['$historyColor'm'$historyFormat'\e[m'$containerDivision'\e['$gitColor'm'$(parse_git_branch)'\e[m\e['$pathColor'm'$pathFormat'\e[m'$containerEnd
|
70
|
+
|
71
|
+
if [ $lastCommandStatus == 0 ] # if last command succeded, use success color and symbol
|
72
|
+
|
73
|
+
then
|
74
|
+
|
75
|
+
primaryPrompt+='\e['$successColor'm'$successSymbol' \e[m'
|
76
|
+
secondaryPrompt+='\e['$successColor'm'$successSymbol' \e[m'
|
77
|
+
|
78
|
+
else # otherwise, use failure color and symbol
|
79
|
+
|
80
|
+
primaryPrompt+='\e['$failureColor'm'$failureSymbol' \e[m'
|
81
|
+
secondaryPrompt+='\e['$failureColor'm'$failureSymbol' \e[m'
|
82
|
+
|
83
|
+
fi
|
84
|
+
|
85
|
+
|
86
|
+
if [ $(id -u) == 0 ] # if userid is superuser, warn the user by using warning color and symbol
|
87
|
+
|
88
|
+
then
|
89
|
+
|
90
|
+
primaryPrompt+='\e['$warningColor'm'$warningSymbol' > \e[m'
|
91
|
+
secondaryPrompt+='\e['$warningColor'm'$warningSymbol' > \e[m'
|
92
|
+
|
93
|
+
|
94
|
+
else # otherwise, use all clear color and symbol
|
95
|
+
|
96
|
+
primaryPrompt+='\e['$allClearColor'm'$allClearSymbol' > \e[m'
|
97
|
+
secondaryPrompt+='\e['$allClearColor'm'$allClearSymbol' > \e[m'
|
98
|
+
|
99
|
+
fi
|
100
|
+
|
101
|
+
PS1=$primaryPrompt # write constructed primary prompt to environment variable PS1
|
102
|
+
PS2=$secondaryPrompt # write constructed secondary prompt to environment variable PS2
|
103
|
+
|
104
|
+
}
|
data/lib/super_prompt.rb
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: super_prompt
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Samuel Lair
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-09-18 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: This gem installs Super Prompt. Super Prompt is a customizable Bash
|
14
|
+
prompt that provides the user with a wealth of information at a glance including
|
15
|
+
git branch, present working directory (pwd), whether the last command succeeded,
|
16
|
+
warns the user if the user is root, date, time, user, host name, command number
|
17
|
+
and history number.
|
18
|
+
email: lair002@gmail.com
|
19
|
+
executables:
|
20
|
+
- super_prompt
|
21
|
+
extensions: []
|
22
|
+
extra_rdoc_files: []
|
23
|
+
files:
|
24
|
+
- bin/super_prompt
|
25
|
+
- lib/.super_prompt
|
26
|
+
- lib/super_prompt.rb
|
27
|
+
homepage: https://github.com/lair001/super-prompt
|
28
|
+
licenses:
|
29
|
+
- MIT
|
30
|
+
metadata: {}
|
31
|
+
post_install_message:
|
32
|
+
rdoc_options: []
|
33
|
+
require_paths:
|
34
|
+
- lib
|
35
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0.95'
|
40
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
requirements: []
|
46
|
+
rubyforge_project:
|
47
|
+
rubygems_version: 2.5.1
|
48
|
+
signing_key:
|
49
|
+
specification_version: 4
|
50
|
+
summary: 'Super Prompt: Customizable Bash prompt that provides the user with a wealth
|
51
|
+
of information at a glance.'
|
52
|
+
test_files: []
|