├── .gitignore ├── modules ├── background_job.zsh ├── time.zsh ├── subversion.zsh ├── ssh.zsh ├── php.zsh ├── mercurial.zsh ├── gradle.zsh ├── vagrant.zsh ├── java.zsh ├── disk.zsh ├── maven.zsh ├── node.zsh ├── postgres.zsh ├── go.zsh ├── ruby.zsh ├── mysql.zsh ├── elixir.zsh ├── docker.zsh ├── crystal.zsh ├── python.zsh └── git.zsh ├── activate ├── modules.zsh ├── .github ├── PULL_REQUEST_TEMPLATE.md └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── README.md ├── LICENSE ├── Vagrantfile ├── time_test.zsh └── test.zsh /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .vagrant/ 3 | *.log 4 | -------------------------------------------------------------------------------- /modules/background_job.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_bg_count() { 4 | echo -n "$(jobs | grep -cv "pwd")" 5 | } 6 | -------------------------------------------------------------------------------- /modules/time.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_time(){ 4 | echo -ne "$(date '+%H:%M:%S')" 5 | } 6 | 7 | plib_date(){ 8 | echo -ne "$(date '+%d/%m/%y')" 9 | } 10 | 11 | plib_day(){ 12 | echo -ne "$(date '+%a')" 13 | } 14 | -------------------------------------------------------------------------------- /activate: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | source ${0:A:h}/modules.zsh 4 | 5 | for module in ${MODULES} 6 | do 7 | if [[ -f "${0:A:h}/modules/${module}.zsh" ]] 8 | then 9 | source ${0:A:h}/modules/${module}.zsh 10 | else 11 | echo "module: '${module}' not found" 12 | fi 13 | done 14 | -------------------------------------------------------------------------------- /modules/subversion.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_is_svn(){ 4 | if [[ $(svn info 2>/dev/null) != "" ]]; then 5 | echo -n 1 6 | else 7 | echo -n 0 8 | fi 9 | } 10 | 11 | plib_svn_rev(){ 12 | __rev=$(svn info 2>/dev/null | grep Revision | awk '{print $2}') || return; 13 | echo -n "${__rev}"; 14 | unset __rev; 15 | } 16 | -------------------------------------------------------------------------------- /modules/ssh.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_ssh_st(){ 4 | [[ -n "$SSH_CLIENT" ]] && echo -n "[S]" 5 | } 6 | 7 | plib_ssh_client_ip(){ 8 | [[ -n "$SSH_CLIENT" ]] && echo -n "$(echo "$SSH_CLIENT" | awk '{print $1}')" 9 | } 10 | 11 | plib_ssh_client_port(){ 12 | [[ -n "$SSH_CLIENT" ]] && echo -n "$(echo "$SSH_CLIENT" | awk '{print $3}')" 13 | } 14 | -------------------------------------------------------------------------------- /modules.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | if [[ -z "${MODULES}" ]] 4 | then 5 | MODULES=( 6 | background_job 7 | crystal 8 | disk 9 | docker 10 | elixir 11 | git 12 | go 13 | gradle 14 | java 15 | maven 16 | mercurial 17 | mysql 18 | node 19 | php 20 | postgres 21 | python 22 | ruby 23 | ssh 24 | subversion 25 | time 26 | vagrant 27 | ) 28 | fi 29 | -------------------------------------------------------------------------------- /modules/php.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_php_version(){ 4 | command -v php > /dev/null && echo -ne "$(php -v | head -1 | awk -F'[ -]' '{print $2}')" 5 | } 6 | 7 | plib_php_major_minor_version(){ 8 | command -v php > /dev/null && echo -ne "$(php -v | head -1 | awk -F'[ -.]' '{print $2"."$3}')" 9 | } 10 | 11 | plib_php_major_version(){ 12 | command -v php > /dev/null && echo -ne "$(php -v | head -1 | awk -F'[ -.]' '{print $2}')" 13 | } 14 | -------------------------------------------------------------------------------- /modules/mercurial.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_is_hg(){ 4 | if [[ $(hg branch 2>/dev/null) != "" ]]; then 5 | echo -n 1 6 | else 7 | echo -n 0 8 | fi 9 | } 10 | 11 | plib_hg_branch(){ 12 | __ref=$(hg branch 2> /dev/null) || return; 13 | echo -ne "${__ref}"; 14 | unset __ref; 15 | } 16 | 17 | plib_hg_rev(){ 18 | __rev=$(hg identify --num 2>/dev/null | tr -d " +") || return; 19 | echo -ne "${__rev}"; 20 | unset __rev; 21 | } 22 | -------------------------------------------------------------------------------- /modules/gradle.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_gradle_version(){ 4 | command -v gradle > /dev/null && echo -ne "$(gradle -v | grep Gradle | awk '{print $2}')" 5 | } 6 | 7 | plib_gradle_major_version(){ 8 | command -v gradle > /dev/null && echo -ne "$(gradle -v | grep Gradle | awk -F'[ .]' '{print $2}')" 9 | } 10 | 11 | plib_gradle_minor_version(){ 12 | command -v gradle > /dev/null && echo -ne "$(gradle -v | grep Gradle | awk -F'[ .]' '{print $3}')" 13 | } 14 | -------------------------------------------------------------------------------- /modules/vagrant.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_vagrant_version(){ 4 | command -v vagrant > /dev/null && echo -ne "$(vagrant -v | awk -F'[ .]' '{print $2"."$3"."$4}')" 5 | } 6 | 7 | plib_vagrant_major_minor_version(){ 8 | command -v vagrant > /dev/null && echo -ne "$(vagrant -v | awk -F'[ .]' '{print $2"."$3}')" 9 | } 10 | 11 | plib_vagrant_major_version(){ 12 | command -v vagrant > /dev/null && echo -ne "$(vagrant -v | awk -F'[ .]' '{print $2}')" 13 | } 14 | -------------------------------------------------------------------------------- /modules/java.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_java_version(){ 4 | command -v java > /dev/null && echo -ne "$(java -version 2>&1 | awk -F '["_]' '/version/ {print $2}')"; 5 | } 6 | 7 | plib_java_major_version(){ 8 | _version1=$(command -v java > /dev/null && echo -ne "$(java -version 2>&1 | awk -F '["_.]' '/version/ {print $2}')") 9 | _version2=$(command -v java > /dev/null && echo -ne "$(java -version 2>&1 | awk -F '["_.]' '/version/ {print $3}')") 10 | [[ $_version1 == '1' ]] && echo -ne "$_version2" || echo -ne "$_version1" 11 | } 12 | -------------------------------------------------------------------------------- /modules/disk.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_disk_summary(){ 4 | echo -ne "$(df -h . | tail -1 | awk '{print $1" -> "$(NF)" "$2" (U:"$3"|F:"$4")"}')"; 5 | } 6 | 7 | plib_disk_name(){ 8 | echo -ne "$(df -h . | tail -1 | awk '{print $1}')"; 9 | } 10 | 11 | plib_disk_size(){ 12 | echo -ne "$(df -h . | tail -1 | awk '{print $2}')"; 13 | } 14 | 15 | plib_disk_used(){ 16 | echo -ne "$(df -h . | tail -1 | awk '{print $3}')"; 17 | } 18 | 19 | plib_disk_avail(){ 20 | echo -ne "$(df -h . | tail -1 | awk '{print $4}')"; 21 | } 22 | 23 | plib_disk_cap(){ 24 | echo -ne "$(df -h . | tail -1 | awk '{print $5}')"; 25 | } 26 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | * **Please check if the PR fulfills these requirements** 2 | - [ ] The commit message follows our guidelines 3 | - [ ] Docs have been added / updated in README.md (for features) 4 | 5 | 6 | * **What kind of change does this PR introduce?** (Bug fix, feature, docs update, ...) 7 | 8 | 9 | 10 | * **What is the current behavior?** (You can also link to an open issue here) 11 | 12 | 13 | 14 | * **What is the new behavior (if this is a feature change)?** 15 | 16 | 17 | 18 | * **Does this PR introduce a breaking change?** (What changes might users need to make in their configuration due to this PR?) 19 | 20 | 21 | 22 | * **Other information**: 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /modules/maven.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_maven_version(){ 4 | command -v mvn > /dev/null && echo -ne "$(mvn -v | grep 'Apache Maven' | awk '{print $3}')" 5 | } 6 | 7 | plib_maven_major_version(){ 8 | command -v mvn > /dev/null && echo -ne "$(mvn -v | grep 'Apache Maven' | awk -F'[. ]' '{print $3}')" 9 | } 10 | 11 | plib_maven_minor_version(){ 12 | command -v mvn > /dev/null && echo -ne "$(mvn -v | grep 'Apache Maven' | awk -F'[. ]' '{print $4}')" 13 | } 14 | 15 | plib_maven_major_minor_version(){ 16 | command -v mvn > /dev/null && echo -ne "$(mvn -v | grep 'Apache Maven' | awk -F'[. ]' '{print $3"."$4}')" 17 | } 18 | 19 | plib_maven_patch_version(){ 20 | command -v mvn > /dev/null && echo -ne "$(mvn -v | grep 'Apache Maven' | awk -F'[. ]' '{print $5}')" 21 | } 22 | -------------------------------------------------------------------------------- /modules/node.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_node_version(){ 4 | command -v node > /dev/null && echo -ne "$(node -v | tr -d 'v')" 5 | } 6 | 7 | plib_node_major_minor_version(){ 8 | command -v node > /dev/null && echo -ne "$(node -v | awk -F. '{print $1"."$2}' | tr -d 'v')" 9 | } 10 | 11 | plib_node_major_version(){ 12 | command -v node > /dev/null && echo -ne "$(node -v | awk -F. '{print $1}' | tr -d 'v')" 13 | } 14 | 15 | plib_nodenv_version(){ 16 | command -v nodenv > /dev/null && echo -ne "$(nodenv version-name | awk '{print $1}')" 17 | } 18 | 19 | plib_nodenv_major_minor_version(){ 20 | command -v nodenv > /dev/null && echo -ne "$(nodenv version-name | awk -F. '{print $1"."$2}')" 21 | } 22 | 23 | plib_nodenv_major_version(){ 24 | command -v nodenv > /dev/null && echo -ne "$(nodenv version-name | awk -F. '{print $1}')" 25 | } 26 | -------------------------------------------------------------------------------- /modules/postgres.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_postgres_version(){ 4 | command -v psql > /dev/null && echo -ne "$(psql -V | awk -F'[ .]' '{print $3"."$4}')" 5 | } 6 | 7 | plib_postgres_major_minor_version(){ 8 | command -v psql > /dev/null && echo -ne "$(psql -V | awk -F'[ .]' '{print $3"."$4}')" 9 | } 10 | 11 | plib_postgres_major_version(){ 12 | command -v psql > /dev/null && echo -ne "$(psql -V | awk -F'[ .]' '{print $3}')" 13 | } 14 | 15 | plib_postgres_service_status_homebrew(){ 16 | command -v brew > /dev/null || return 17 | command -v psql > /dev/null && echo -ne "$(brew services list | grep 'postgres' | awk '{print $2}')" 18 | } 19 | 20 | plib_postgres_service_status_linux(){ 21 | command -v service > /dev/null || return 22 | command -v psql > /dev/null && echo -ne "$(service postgres status | grep 'Active' | awk '{print $2}')" 23 | } 24 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Environment:** 27 | - Plugin Manager: [ antigen | zplug | ... ] 28 | - ZSH Version: 29 | - Operating System: [ name and version ] 30 | - Terminal Emulator: [ name and version ] 31 | 32 | **Additional context** 33 | Add any other context about the problem here. 34 | -------------------------------------------------------------------------------- /modules/go.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_go_version(){ 4 | command -v go > /dev/null && echo -ne "$(go version | tr 'p' ' ' | awk '{print $3}' | tr -d 'go')" 5 | } 6 | 7 | plib_go_major_minor_version(){ 8 | command -v go > /dev/null && echo -ne "$(go version | tr 'p' ' ' | awk -F'[ .]' '{print $3"."$4}' | tr -d 'go')" 9 | } 10 | 11 | plib_go_major_version(){ 12 | command -v go > /dev/null && echo -ne "$(go version | tr 'p' ' ' | awk -F'[ .]' '{print $3}' | tr -d 'go')" 13 | } 14 | 15 | plib_goenv_version(){ 16 | command -v goenv > /dev/null && echo -ne "$(goenv version-name)" 17 | } 18 | 19 | plib_goenv_major_minor_version(){ 20 | command -v goenv > /dev/null && echo -ne "$(goenv version-name | awk -F. '{print $1"."$2}')" 21 | } 22 | 23 | plib_goenv_major_version(){ 24 | command -v goenv > /dev/null && echo -ne "$(goenv version-name | awk -F. '{print $1}')" 25 | } 26 | -------------------------------------------------------------------------------- /modules/ruby.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_ruby_version(){ 4 | command -v ruby > /dev/null && echo -ne "$(ruby -v | tr 'p' ' ' | awk '{print $2}' | tr -d ' \n')" 5 | } 6 | 7 | plib_ruby_major_version(){ 8 | command -v ruby > /dev/null && echo -ne "$(ruby -v | tr 'p' ' ' | awk -F '[. ]' '{printf("%s",$2)}')" 9 | } 10 | 11 | plib_ruby_major_minor_version(){ 12 | command -v ruby > /dev/null && echo -ne "$(ruby -v | tr 'p' ' ' | awk -F '[. ]' '{printf("%s.%s",$2,$3)}')" 13 | } 14 | 15 | plib_rbenv_version(){ 16 | command -v rbenv > /dev/null && echo -ne "$(rbenv version-name | awk '{print $1}')" 17 | } 18 | 19 | plib_rbenv_major_version(){ 20 | command -v rbenv > /dev/null && echo -ne "$(rbenv version-name | awk -F'.' '{printf("%s",$1)}')" 21 | } 22 | 23 | plib_rbenv_major_minor_version(){ 24 | command -v rbenv > /dev/null && echo -ne "$(rbenv version-name | awk -F'.' '{printf("%s.%s",$1,$2)}')" 25 | } 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # promptlib-zsh 2 | 3 | Collection of libraries for zsh prompts 4 | 5 | ## Usage 6 | 7 | add the library as a submodule: 8 | 9 | git submodule add https://github.com/eendroroy/promptlib-zsh.git libs/promptlib 10 | 11 | use modules in your theme: 12 | 13 | THEME_ROOT=${0:A:h} 14 | MODULES=(git ssh python) # skip this line to include all modules 15 | source "${THEME_ROOT}/libs/promptlib/activate" 16 | 17 | # rest of your theme 18 | 19 | 20 | ## Available Modules 21 | 22 | - background_job 23 | - crystal 24 | - disk 25 | - docker 26 | - elixir 27 | - git 28 | - go 29 | - gradle 30 | - java 31 | - maven 32 | - mercurial 33 | - mysql 34 | - node 35 | - php 36 | - postgres 37 | - python 38 | - ruby 39 | - ssh 40 | - subversion 41 | - time 42 | - vagrant 43 | 44 | 45 | ## License 46 | 47 | The project is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). 48 | -------------------------------------------------------------------------------- /modules/mysql.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_mysql_version(){ 4 | command -v mysqld > /dev/null && echo -ne "$(mysqld --version | sed 's|.*Ver||g' | tr -s ' ' | awk -F'[ -.]' '{print $2"."$3"."$4}')" 5 | } 6 | 7 | plib_mysql_major_minor_version(){ 8 | command -v mysqld > /dev/null && echo -ne "$(mysqld --version | sed 's|.*Ver||g' | tr -s ' ' | awk -F'[ -.]' '{print $2"."$3}')" 9 | } 10 | 11 | plib_mysql_major_version(){ 12 | command -v mysqld > /dev/null && echo -ne "$(mysqld --version | sed 's|.*Ver||g' | tr -s ' ' | awk -F'[ -.]' '{print $2}')" 13 | } 14 | 15 | plib_mysql_service_status_homebrew(){ 16 | command -v brew > /dev/null || return 17 | command -v mysqld > /dev/null && echo -ne "$(brew services list | grep 'mysql' | awk '{print $2}')" 18 | } 19 | 20 | plib_mysql_service_status_linux(){ 21 | command -v service > /dev/null || return 22 | command -v mysqld > /dev/null && echo -ne "$(service mysql status | grep 'Active' | awk '{print $2}')" 23 | } 24 | -------------------------------------------------------------------------------- /modules/elixir.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_elixir_version(){ 4 | command -v elixir > /dev/null && echo -ne "$(elixir -v | awk '/Elixir/ {printf("%s", $2)}')" 5 | } 6 | 7 | plib_elixir_major_version(){ 8 | command -v elixir > /dev/null && echo -ne "$(elixir -v | awk -F'[ .]' '/Elixir/ {printf("%s", $2)}')" 9 | } 10 | 11 | plib_elixir_major_minor_version(){ 12 | command -v elixir > /dev/null && echo -ne "$(elixir -v | awk -F'[ .]' '/Elixir/ {printf("%s.%s", $2, $3)}')" 13 | } 14 | 15 | plib_elixir_minor_version(){ 16 | command -v elixir > /dev/null && echo -ne "$(elixir -v | awk -F'[ .]' '/Elixir/ {printf("%s", $3)}')" 17 | } 18 | 19 | plib_exenv_version(){ 20 | command -v exenv > /dev/null && echo -ne "$(exenv version-name | awk '{printf("%s", $1)}')" 21 | } 22 | 23 | plib_exenv_major_minor_version(){ 24 | command -v exenv > /dev/null && echo -ne "$(exenv version-name | awk -F. '{printf("%s.%s", $1, $2)}')" 25 | } 26 | 27 | plib_exenv_major_version(){ 28 | command -v exenv > /dev/null && echo -ne "$(exenv version-name | awk -F. '{printf("%s", $1)}')" 29 | } 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 indrajit 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /modules/docker.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_docker_version(){ 4 | command -v docker > /dev/null && echo -ne "$(docker -v | awk -F'[ ,.]' '{print $3"."$4"."$5}')" 5 | } 6 | 7 | plib_docker_major_version(){ 8 | command -v docker > /dev/null && echo -ne "$(docker -v | awk -F'[ ,.]' '{print $3}')" 9 | } 10 | 11 | plib_docker_major_minor_version(){ 12 | command -v docker > /dev/null && echo -ne "$(docker -v | awk -F'[ ,.]' '{print $3"."$4}')" 13 | } 14 | 15 | plib_docker_minor_version(){ 16 | command -v docker > /dev/null && echo -ne "$(docker -v | awk -F'[ ,.]' '{print $4}')" 17 | } 18 | 19 | plib_docker_patch_version(){ 20 | command -v docker > /dev/null && echo -ne "$(docker -v | awk -F'[ ,.]' '{print $5}')" 21 | } 22 | 23 | plib_docker_service_status(){ 24 | command -v docker > /dev/null && echo -ne "$(docker info >/dev/null 2>&1; echo $?)" 25 | } 26 | 27 | plib_docker_container_count(){ 28 | command -v docker > /dev/null && echo -ne "$(docker ps -q 2>/dev/null | wc -l | tr -d ' ')" 29 | } 30 | 31 | plib_docker_image_count(){ 32 | command -v docker > /dev/null && echo -ne "$(docker images -q 2>/dev/null | wc -l | tr -d ' ')" 33 | } 34 | -------------------------------------------------------------------------------- /modules/crystal.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_crystal_version(){ 4 | command -v crystal > /dev/null && echo -ne "$(crystal -v | head -1 | awk '{print $2}')" 5 | } 6 | 7 | plib_crystal_major_version(){ 8 | command -v crystal > /dev/null && echo -ne "$(crystal -v | head -1 | awk -F'[ .]' '{print $2}')" 9 | } 10 | 11 | plib_crystal_minor_version(){ 12 | command -v crystal > /dev/null && echo -ne "$(crystal -v | head -1 | awk -F'[ .]' '{print $3}')" 13 | } 14 | 15 | plib_crystal_major_minor_version(){ 16 | command -v crystal > /dev/null && echo -ne "$(crystal -v | head -1 | awk -F'[ .]' '{print $2"."$3}')" 17 | } 18 | 19 | plib_crystal_patch_version(){ 20 | command -v crystal > /dev/null && echo -ne "$(crystal -v | head -1 | awk -F'[ .]' '{print $4}')" 21 | } 22 | 23 | plib_crenv_version(){ 24 | command -v crenv > /dev/null && echo -ne "$(crenv version-name | awk '{print $1}')" 25 | } 26 | 27 | plib_crenv_major_version(){ 28 | command -v crenv > /dev/null && echo -ne "$(crenv version-name | awk -F. '{print $1}')" 29 | } 30 | 31 | plib_crenv_major_minor_version(){ 32 | command -v crenv > /dev/null && echo -ne "$(crenv version-name | awk -F. '{print $1"."$2}')" 33 | } 34 | 35 | plib_crenv_minor_version(){ 36 | command -v crenv > /dev/null && echo -ne "$(crenv version-name | awk -F. '{print $2}')" 37 | } 38 | 39 | plib_crenv_patch_version(){ 40 | command -v crenv > /dev/null && echo -ne "$(crenv version-name | awk -F. '{print $3}')" 41 | } 42 | -------------------------------------------------------------------------------- /modules/python.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | # default is regular 'python' 4 | 5 | __python_executable_name() { 6 | if command -v python3 > /dev/null; 7 | then 8 | # if there is a 'python3', use that instead of 'python' 9 | # this is typical on macOS 10 | echo "python3" 11 | else 12 | echo "python" 13 | fi 14 | } 15 | 16 | plib_venv(){ 17 | [[ -n "${VIRTUAL_ENV}" ]] && echo -n "($(basename "$VIRTUAL_ENV"))" 18 | } 19 | 20 | plib_python_version(){ 21 | command -v $(__python_executable_name) > /dev/null && echo -ne "$($(__python_executable_name) --version 2>&1 | awk '{print $2}' | tr -d ' \n')" 22 | } 23 | 24 | plib_python_major_minor_version(){ 25 | command -v $(__python_executable_name) > /dev/null && echo -ne "$($(__python_executable_name) --version 2>&1 | awk -F '[. ]' '{printf("%s.%s",$2,$3)}')" 26 | } 27 | 28 | plib_python_major_version(){ 29 | command -v $(__python_executable_name) > /dev/null && echo -ne "$($(__python_executable_name) --version 2>&1 | awk -F '[. ]' '{print $2}')" 30 | } 31 | 32 | plib_pyenv_version(){ 33 | command -v pyenv > /dev/null && echo -ne "$(pyenv version-name | awk '{print $1}')" 34 | } 35 | 36 | plib_pyenv_major_minor_version(){ 37 | command -v pyenv > /dev/null && echo -ne "$(pyenv version-name | awk -F '.' '{printf("%s.%s",$1,$2)}')" 38 | } 39 | 40 | plib_pyenv_major_version(){ 41 | command -v pyenv > /dev/null && echo -ne "$(pyenv version-name | awk -F '.' '{print $1}')" 42 | } 43 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | Vagrant.configure("2") do |config| 5 | config.vm.box_check_update = false 6 | config.vbguest.auto_update = false 7 | 8 | config.vm.define :bionic do |machine| 9 | machine.vm.box = "ubuntu/xenial64" 10 | machine.vm.network "private_network", ip: "192.168.33.10" 11 | machine.vm.synced_folder ".", "/home/vagrant/promptlib-zsh" 12 | 13 | machine.vm.provider "virtualbox" do |vb| 14 | vb.gui = false 15 | vb.memory = 512 16 | end 17 | 18 | machine.vm.provision "shell", privileged: false, inline: <<-SHELL 19 | sudo apt-get update 20 | sudo apt-get install -y wget ca-certificates 21 | 22 | wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 23 | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 24 | sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root' 25 | sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root' 26 | 27 | sudo apt-get update 28 | sudo apt-get install -y git zsh mysql-server postgresql postgresql-contrib 29 | 30 | __line_num=$(grep -nr 'vagrant:' /etc/passwd | awk -F':' '{print $1}') 31 | sudo sed -i "${__line_num}s|/bin/bash|$(which zsh)|g" /etc/passwd 32 | 33 | wget 'https://raw.githubusercontent.com/eendroroy/loki-bootstrap/master/recipes/docker.sh' -O - | bash 34 | wget 'https://raw.githubusercontent.com/eendroroy/loki-bootstrap/master/recipes/vagrant.sh' -O - | bash 35 | SHELL 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /time_test.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | source ${0:A:h}/modules.zsh 4 | 5 | for module in ${MODULES} 6 | do 7 | if [[ -f "${0:A:h}/modules/${module}.zsh" ]] 8 | then 9 | source "${0:A:h}/modules/${module}.zsh" 10 | fi 11 | done 12 | plib_is_git > /dev/null 13 | plib_git_branch > /dev/null 14 | plib_git_rev > /dev/null 15 | STATUS="$(plib_git_status)" > /dev/null 16 | plib_git_staged_mod $STATUS > /dev/null 17 | plib_git_unstaged_mod $STATUS > /dev/null 18 | plib_git_staged_del $STATUS > /dev/null 19 | plib_git_unstaged_del $STATUS > /dev/null 20 | plib_git_staged_add $STATUS > /dev/null 21 | plib_git_unstaged_add $STATUS > /dev/null 22 | plib_git_status_new $STATUS > /dev/null 23 | unset STATUS > /dev/null 24 | plib_git_remote_is_defined remote > /dev/null 25 | plib_git_left_right > /dev/null 26 | plib_git_commit_since > /dev/null 27 | plib_is_git_rebasing > /dev/null 28 | plib_git_stash > /dev/null 29 | plib_is_hg > /dev/null 30 | plib_hg_branch > /dev/null 31 | plib_hg_rev > /dev/null 32 | plib_is_svn > /dev/null 33 | plib_svn_rev > /dev/null 34 | plib_ssh_st > /dev/null 35 | plib_ssh_client_ip > /dev/null 36 | plib_ssh_client_port > /dev/null 37 | plib_venv > /dev/null 38 | plib_python_version > /dev/null 39 | plib_python_major_minor_version > /dev/null 40 | plib_python_major_version > /dev/null 41 | plib_pyenv_version > /dev/null 42 | plib_pyenv_major_minor_version > /dev/null 43 | plib_pyenv_major_version > /dev/null 44 | plib_java_version > /dev/null 45 | plib_java_major_version > /dev/null 46 | plib_ruby_version > /dev/null 47 | plib_ruby_major_minor_version > /dev/null 48 | plib_ruby_major_version > /dev/null 49 | plib_rbenv_version > /dev/null 50 | plib_rbenv_major_minor_version > /dev/null 51 | plib_rbenv_major_version > /dev/null 52 | plib_node_version > /dev/null 53 | plib_node_major_minor_version > /dev/null 54 | plib_node_major_version > /dev/null 55 | plib_nodenv_version > /dev/null 56 | plib_nodenv_major_minor_version > /dev/null 57 | plib_nodenv_major_version > /dev/null 58 | plib_elixir_version > /dev/null 59 | plib_elixir_major_minor_version > /dev/null 60 | plib_elixir_major_version > /dev/null 61 | plib_exenv_version > /dev/null 62 | plib_exenv_major_minor_version > /dev/null 63 | plib_exenv_major_version > /dev/null 64 | plib_bg_count > /dev/null 65 | plib_disk_name > /dev/null 66 | plib_disk_size > /dev/null 67 | plib_disk_avail > /dev/null 68 | plib_disk_used > /dev/null 69 | plib_disk_cap > /dev/null 70 | plib_time > /dev/null 71 | plib_date > /dev/null 72 | plib_day > /dev/null 73 | plib_go_version > /dev/null 74 | plib_go_major_minor_version > /dev/null 75 | plib_go_major_version > /dev/null 76 | plib_goenv_version > /dev/null 77 | plib_goenv_major_minor_version > /dev/null 78 | plib_goenv_major_version > /dev/null 79 | plib_crystal_version > /dev/null 80 | plib_crystal_major_minor_version > /dev/null 81 | plib_crystal_major_version > /dev/null 82 | plib_crenv_version > /dev/null 83 | plib_crenv_major_minor_version > /dev/null 84 | plib_crenv_major_version > /dev/null 85 | plib_php_version > /dev/null 86 | plib_php_major_minor_version > /dev/null 87 | plib_php_major_version > /dev/null 88 | plib_docker_version > /dev/null 89 | plib_docker_major_minor_version > /dev/null 90 | plib_docker_major_version > /dev/null 91 | plib_docker_service_status > /dev/null 92 | plib_docker_container_count > /dev/null 93 | plib_vagrant_version > /dev/null 94 | plib_vagrant_major_minor_version > /dev/null 95 | plib_vagrant_major_version > /dev/null 96 | plib_mysql_version > /dev/null 97 | plib_mysql_major_minor_version > /dev/null 98 | plib_mysql_major_version > /dev/null 99 | plib_mysql_service_status_homebrew > /dev/null 100 | plib_mysql_service_status_linux > /dev/null 101 | plib_postgres_version > /dev/null 102 | plib_postgres_major_minor_version > /dev/null 103 | plib_postgres_major_version > /dev/null 104 | plib_postgres_service_status_homebrew > /dev/null 105 | plib_postgres_service_status_linux > /dev/null 106 | -------------------------------------------------------------------------------- /modules/git.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plib_is_git(){ 4 | if [[ $(\git rev-parse --git-dir 2>/dev/null) != "" ]]; then 5 | echo -n 1 6 | else 7 | echo -n 0 8 | fi 9 | } 10 | 11 | plib_git_is_bare(){ 12 | if [[ $(\git rev-parse --is-bare-repository 2>/dev/null) == "true" ]]; then 13 | echo -n 1 14 | else 15 | echo -n 0 16 | fi 17 | } 18 | 19 | plib_git_branch(){ 20 | __ref=$(\git symbolic-ref HEAD 2>/dev/null) || __ref="detached" || return 21 | echo -n "${__ref#refs/heads/}" 22 | unset __ref 23 | } 24 | 25 | # Gets the short SHA-1 of the current revision. 26 | plib_git_rev(){ 27 | git rev-parse HEAD 2>/dev/null | cut -c 1-7 | tr -d ' \n' 28 | } 29 | 30 | plib_git_remote_is_defined(){ 31 | if [[ -n "$1" ]] && [[ "$(\git remote -v | grep -c "$1")" -gt 0 ]]; then 32 | echo -ne 1 33 | else 34 | echo -ne 0 35 | fi 36 | } 37 | 38 | plib_git_remote_name(){ 39 | if \git remote -v | grep origin >/dev/null; then 40 | echo -ne "origin" 41 | else 42 | echo -ne "$(\git remote -v | head -1 | awk '{print $1}')" 43 | fi 44 | } 45 | 46 | # For everything related to git status parsing please refer to this documentation: 47 | # https://git-scm.com/docs/git-status#_short_format 48 | 49 | plib_git_status(){ 50 | echo -n "$(\git status --porcelain 2>/dev/null)" 51 | } 52 | 53 | # Returns the number of staged file modifications. 54 | # Takes a 'git status --porcelain 2' value as argument. 55 | plib_git_staged_mod(){ 56 | echo -n "$1" | grep -c '^M[A,M,D,R, ]\{1\} \|^R[A,M,D,R, ]\{1\} ' | tr -d ' ' 57 | } 58 | 59 | # Returns the number of unstaged file modifications. 60 | # Takes a 'git status --porcelain 2' value as argument. 61 | plib_git_unstaged_mod(){ 62 | echo -n "$1" | grep -c '^[A,M,D,R, ]\{1\}M \|^[A,M,D,R, ]\{1\}R ' | tr -d ' ' 63 | } 64 | 65 | # Returns the number of staged file deletions. 66 | # Takes a 'git status --porcelain 2' value as argument. 67 | plib_git_staged_del(){ 68 | echo -n "$1" | grep -c '^D[A,M,D,R, ]\{1\} ' | tr -d ' ' 69 | } 70 | 71 | # Returns the number of unstaged file deletions. 72 | # Takes a 'git status --porcelain 2' value as argument. 73 | plib_git_unstaged_del(){ 74 | echo -n "$1" | grep -c '^[A,M,D,R, ]\{1\}D ' | tr -d ' ' 75 | } 76 | 77 | # Returns the number of staged new files. 78 | # Takes a 'git status --porcelain 2' value as argument. 79 | plib_git_staged_add(){ 80 | echo -n "$1" | grep -c '^A[A,M,D,R, ]\{1\} ' | tr -d ' ' 81 | } 82 | 83 | # Returns the number of unstaged new files. 84 | # Takes a 'git status --porcelain 2' value as argument. 85 | plib_git_unstaged_add(){ 86 | echo -n "$1" | grep -c '^[A,M,D,R, ]\{1\}A ' | tr -d ' ' 87 | } 88 | 89 | # Returns the number of unstaged untracked files. 90 | # Takes a 'git status --porcelain 2' value as argument. 91 | plib_git_status_new(){ 92 | echo -n "$1" | grep -c '^?? ' | tr -d ' ' 93 | } 94 | 95 | # This determines how many commit behind or ahead of the target branch the current revision is. 96 | # https://git-scm.com/docs/git-rev-list#Documentation/git-rev-list.txt---left-right 97 | # 98 | # It takes a remote name and a remote branch name as argument. 99 | # Directly returns the git rev-list --left-right value or an empty string if something went wrong. 100 | plib_git_left_right(){ 101 | __remote_name="$1" 102 | [[ -z "$__remote_name" ]] && __remote_name='origin' 103 | 104 | __local_branch_name=$(plib_git_branch) 105 | 106 | if [[ "$__local_branch_name" != "detached" ]]; then 107 | 108 | __remote_branch_name="$2" 109 | [[ -z "$__remote_branch_name" ]] && __remote_branch_name="$__local_branch_name" 110 | 111 | git rev-list --left-right --count \ 112 | "refs/heads/${__local_branch_name}...refs/remotes/${__remote_name}/${__remote_branch_name}" \ 113 | 2>/dev/null || echo '' 114 | 115 | unset __remote_branch_name 116 | fi 117 | 118 | unset __remote_name __local_branch_name 119 | } 120 | 121 | # This determines how many commit behind or ahead of the master branch the current branch is. 122 | # https://git-scm.com/docs/git-rev-list#Documentation/git-rev-list.txt---left-right 123 | # 124 | # It takes a remote name as argument. 125 | # Directly returns the git rev-list --left-right value or an empty string if something went wrong. 126 | plib_git_left_right_master(){ 127 | __remote_name="$1" 128 | [[ -z "$__remote_name" ]] && __remote_name='origin' 129 | 130 | __local_branch_name=$(plib_git_branch) 131 | 132 | if [[ "$__local_branch_name" != "detached" ]]; then 133 | git rev-list --left-right --count \ 134 | "refs/heads/master...refs/remotes/${__remote_name}/${__local_branch_name}" \ 135 | 2>/dev/null || echo '' 136 | fi 137 | 138 | unset __remote_name __local_branch_name 139 | } 140 | 141 | plib_git_commit_since(){ 142 | __sed_year='s| year\(s\)\{0,1\}|Y|g' 143 | __sed_month='s| month\(s\)\{0,1\}|Mo|g' 144 | __sed_week='s| week\(s\)\{0,1\}|W|g' 145 | __sed_day='s| day\(s\)\{0,1\}|D|g' 146 | __sed_hour='s| hour\(s\)\{0,1\}|H|g' 147 | __sed_minute='s| minute\(s\)\{0,1\}|Mi|g' 148 | __sed_second='s| second\(s\)\{0,1\}|S|g' 149 | __sedstr="${__sed_year};${__sed_month};${__sed_week};${__sed_day};${__sed_hour};${__sed_minute};${__sed_second}" 150 | __commit_since_raw=$(\git log -1 --format='%cr' 2>/dev/null || echo '-0t') 151 | __commit_since=$(echo "${__commit_since_raw}" | sed "${__sedstr}" | tr -d " ago\n") 152 | 153 | echo -ne "${__commit_since}" 154 | 155 | unset __commit_since __commit_since_raw __sedstr 156 | unset __sed_year __sed_month __sed_week __sed_day __sed_hour __sed_minute __sed_second 157 | } 158 | 159 | plib_is_git_rebasing(){ 160 | if [[ -d "$(git rev-parse --git-path rebase-merge)" || -d "$(git rev-parse --git-path rebase-apply)" ]]; then 161 | echo -n 1 162 | else 163 | echo -n 0 164 | fi 165 | } 166 | 167 | plib_git_stash(){ 168 | echo -n "$(\git stash list | wc -l | tr -d ' ')" 169 | } 170 | -------------------------------------------------------------------------------- /test.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | source ${0:A:h}/modules.zsh 4 | 5 | for module in ${MODULES} 6 | do 7 | if [[ -f "${0:A:h}/modules/${module}.zsh" ]] 8 | then 9 | echo "${0:A:h}/modules/${module}.zsh" 10 | source "${0:A:h}/modules/${module}.zsh" 11 | else 12 | echo "module: '${module}' not found" >&2 13 | fi 14 | done 15 | 16 | echo 17 | echo " ==> git" 18 | echo -ne "plib_is_git -> " && plib_is_git 19 | echo 20 | echo -ne "plib_git_branch -> " && plib_git_branch 21 | echo 22 | echo -ne "plib_git_rev -> " && plib_git_rev 23 | echo 24 | 25 | # Git staus / git dirty tests 26 | echo "plib_git_status -> " 27 | STATUS="$(plib_git_status)" 28 | echo "${STATUS}" 29 | echo 30 | echo -ne "plib_git_staged_mod -> " && plib_git_staged_mod "${STATUS}" 31 | echo 32 | echo -ne "plib_git_unstaged_mod -> " && plib_git_unstaged_mod "${STATUS}" 33 | echo 34 | echo -ne "plib_git_staged_del -> " && plib_git_staged_del "${STATUS}" 35 | echo 36 | echo -ne "plib_git_unstaged_del -> " && plib_git_unstaged_del "${STATUS}" 37 | echo 38 | echo -ne "plib_git_staged_add -> " && plib_git_staged_add "${STATUS}" 39 | echo 40 | echo -ne "plib_git_unstaged_add -> " && plib_git_unstaged_add "${STATUS}" 41 | echo 42 | echo -ne "plib_git_status_new -> " && plib_git_status_new "${STATUS}" 43 | echo 44 | unset STATUS 45 | 46 | echo -ne "plib_git_remote_is_defined -> " && plib_git_remote_is_defined remote 47 | echo 48 | echo -ne "plib_git_left_right -> " && plib_git_left_right 49 | echo 50 | echo -ne "plib_git_left_right_master -> " && plib_git_left_right_master 51 | echo 52 | echo -ne "plib_git_commit_since -> " && plib_git_commit_since 53 | echo 54 | echo -ne "plib_is_git_rebasing -> " && plib_is_git_rebasing 55 | echo 56 | echo -ne "plib_git_stash -> " && plib_git_stash 57 | echo 58 | echo 59 | echo " ==> mercurial" 60 | echo -ne "plib_is_hg -> " && plib_is_hg 61 | echo 62 | echo -ne "plib_hg_branch -> " && plib_hg_branch 63 | echo 64 | echo -ne "plib_hg_rev -> " && plib_hg_rev 65 | echo 66 | echo 67 | echo " ==> subversion" 68 | echo -ne "plib_is_svn -> " && plib_is_svn 69 | echo 70 | echo -ne "plib_svn_rev -> " && plib_svn_rev 71 | echo 72 | echo 73 | echo " ==> ssh" 74 | echo -ne "plib_ssh_st -> " && plib_ssh_st 75 | echo 76 | echo -ne "plib_ssh_client_ip -> " && plib_ssh_client_ip 77 | echo 78 | echo -ne "plib_ssh_client_port -> " && plib_ssh_client_port 79 | echo 80 | echo 81 | echo " ==> python" 82 | echo -ne "plib_venv -> " && plib_venv 83 | echo 84 | echo -ne "plib_python_version -> " && plib_python_version 85 | echo 86 | echo -ne "plib_python_major_minor_version -> " && plib_python_major_minor_version 87 | echo 88 | echo -ne "plib_python_major_version -> " && plib_python_major_version 89 | echo 90 | echo -ne "plib_pyenv_version -> " && plib_pyenv_version 91 | echo 92 | echo -ne "plib_pyenv_major_minor_version -> " && plib_pyenv_major_minor_version 93 | echo 94 | echo -ne "plib_pyenv_major_version -> " && plib_pyenv_major_version 95 | echo 96 | echo 97 | echo " ==> java" 98 | echo -ne "plib_java_version -> " && plib_java_version 99 | echo 100 | echo -ne "plib_java_major_version -> " && plib_java_major_version 101 | echo 102 | echo 103 | echo " ==> ruby" 104 | echo -ne "plib_ruby_version -> " && plib_ruby_version 105 | echo 106 | echo -ne "plib_ruby_major_minor_version -> " && plib_ruby_major_minor_version 107 | echo 108 | echo -ne "plib_ruby_major_version -> " && plib_ruby_major_version 109 | echo 110 | echo -ne "plib_rbenv_version -> " && plib_rbenv_version 111 | echo 112 | echo -ne "plib_rbenv_major_minor_version -> " && plib_rbenv_major_minor_version 113 | echo 114 | echo -ne "plib_rbenv_major_version -> " && plib_rbenv_major_version 115 | echo 116 | echo 117 | echo " ==> node" 118 | echo -ne "plib_node_version -> " && plib_node_version 119 | echo 120 | echo -ne "plib_node_major_minor_version -> " && plib_node_major_minor_version 121 | echo 122 | echo -ne "plib_node_major_version -> " && plib_node_major_version 123 | echo 124 | echo -ne "plib_nodenv_version -> " && plib_nodenv_version 125 | echo 126 | echo -ne "plib_nodenv_major_minor_version -> " && plib_nodenv_major_minor_version 127 | echo 128 | echo -ne "plib_nodenv_major_version -> " && plib_nodenv_major_version 129 | echo 130 | echo 131 | echo " ==> elixir" 132 | echo -ne "plib_elixir_version -> " && plib_elixir_version 133 | echo 134 | echo -ne "plib_elixir_major_minor_version -> " && plib_elixir_major_minor_version 135 | echo 136 | echo -ne "plib_elixir_major_version -> " && plib_elixir_major_version 137 | echo 138 | echo -ne "plib_exenv_version -> " && plib_exenv_version 139 | echo 140 | echo -ne "plib_exenv_major_minor_version -> " && plib_exenv_major_minor_version 141 | echo 142 | echo -ne "plib_exenv_major_version -> " && plib_exenv_major_version 143 | echo 144 | echo 145 | echo " ==> background_job" 146 | echo -ne "plib_bg_count -> " && plib_bg_count 147 | echo 148 | echo 149 | echo " ==> disk" 150 | echo -ne "plib_disk_name -> " && plib_disk_name 151 | echo 152 | echo -ne "plib_disk_size -> " && plib_disk_size 153 | echo 154 | echo -ne "plib_disk_avail -> " && plib_disk_avail 155 | echo 156 | echo -ne "plib_disk_used -> " && plib_disk_used 157 | echo 158 | echo -ne "plib_disk_cap -> " && plib_disk_cap 159 | echo 160 | echo 161 | echo " ==> time" 162 | echo -ne "plib_time -> " && plib_time 163 | echo 164 | echo -ne "plib_date -> " && plib_date 165 | echo 166 | echo -ne "plib_day -> " && plib_day 167 | echo 168 | echo 169 | echo 170 | echo " ==> go" 171 | echo -ne "plib_go_version -> " && plib_go_version 172 | echo 173 | echo -ne "plib_go_major_minor_version -> " && plib_go_major_minor_version 174 | echo 175 | echo -ne "plib_go_major_version -> " && plib_go_major_version 176 | echo 177 | echo -ne "plib_goenv_version -> " && plib_goenv_version 178 | echo 179 | echo -ne "plib_goenv_major_minor_version -> " && plib_goenv_major_minor_version 180 | echo 181 | echo -ne "plib_goenv_major_version -> " && plib_goenv_major_version 182 | echo 183 | echo 184 | echo 185 | echo " ==> crystal" 186 | echo -ne "plib_crystal_version -> " && plib_crystal_version 187 | echo 188 | echo -ne "plib_crystal_major_minor_version -> " && plib_crystal_major_minor_version 189 | echo 190 | echo -ne "plib_crystal_major_version -> " && plib_crystal_major_version 191 | echo 192 | echo -ne "plib_crystal_minor_version -> " && plib_crystal_minor_version 193 | echo 194 | echo -ne "plib_crystal_patch_version -> " && plib_crystal_patch_version 195 | echo 196 | echo -ne "plib_crenv_version -> " && plib_crenv_version 197 | echo 198 | echo -ne "plib_crenv_major_minor_version -> " && plib_crenv_major_minor_version 199 | echo 200 | echo -ne "plib_crenv_major_version -> " && plib_crenv_major_version 201 | echo 202 | echo -ne "plib_crenv_minor_version -> " && plib_crenv_minor_version 203 | echo 204 | echo -ne "plib_crenv_patch_version -> " && plib_crenv_patch_version 205 | echo 206 | echo 207 | echo " ==> php" 208 | echo -ne "plib_php_version -> " && plib_php_version 209 | echo 210 | echo -ne "plib_php_major_minor_version -> " && plib_php_major_minor_version 211 | echo 212 | echo -ne "plib_php_major_version -> " && plib_php_major_version 213 | echo 214 | echo 215 | echo " ==> docker" 216 | echo -ne "plib_docker_version -> " && plib_docker_version 217 | echo 218 | echo -ne "plib_docker_major_minor_version -> " && plib_docker_major_minor_version 219 | echo 220 | echo -ne "plib_docker_major_version -> " && plib_docker_major_version 221 | echo 222 | echo -ne "plib_docker_minor_version -> " && plib_docker_minor_version 223 | echo 224 | echo -ne "plib_docker_patch_version -> " && plib_docker_patch_version 225 | echo 226 | echo -ne "plib_docker_service_status -> " && plib_docker_service_status 227 | echo 228 | echo -ne "plib_docker_container_count -> " && plib_docker_container_count 229 | echo 230 | echo 231 | echo " ==> vagrant" 232 | echo -ne "plib_vagrant_version -> " && plib_vagrant_version 233 | echo 234 | echo -ne "plib_vagrant_major_minor_version -> " && plib_vagrant_major_minor_version 235 | echo 236 | echo -ne "plib_vagrant_major_version -> " && plib_vagrant_major_version 237 | echo 238 | echo 239 | echo " ==> mysql" 240 | echo -ne "plib_mysql_version -> " && plib_mysql_version 241 | echo 242 | echo -ne "plib_mysql_major_minor_version -> " && plib_mysql_major_minor_version 243 | echo 244 | echo -ne "plib_mysql_major_version -> " && plib_mysql_major_version 245 | echo 246 | echo -ne "plib_mysql_service_status_homebrew -> " && plib_mysql_service_status_homebrew 247 | echo 248 | echo -ne "plib_mysql_service_status_linux -> " && plib_mysql_service_status_linux 249 | echo 250 | echo 251 | echo " ==> postgres" 252 | echo -ne "plib_postgres_version -> " && plib_postgres_version 253 | echo 254 | echo -ne "plib_postgres_major_minor_version -> " && plib_postgres_major_minor_version 255 | echo 256 | echo -ne "plib_postgres_major_version -> " && plib_postgres_major_version 257 | echo 258 | echo -ne "plib_postgres_service_status_homebrew -> " && plib_postgres_service_status_homebrew 259 | echo 260 | echo -ne "plib_postgres_service_status_linux -> " && plib_postgres_service_status_linux 261 | echo 262 | echo 263 | echo " ==> maven" 264 | echo -ne "plib_maven_version -> " && plib_maven_version 265 | echo 266 | echo -ne "plib_maven_major_version -> " && plib_maven_major_version 267 | echo 268 | echo -ne "plib_maven_minor_version -> " && plib_maven_minor_version 269 | echo 270 | echo -ne "plib_maven_major_minor_version -> " && plib_maven_major_minor_version 271 | echo 272 | echo -ne "plib_maven_patch_version -> " && plib_maven_patch_version 273 | echo 274 | --------------------------------------------------------------------------------