Version 2.0 Upgrade Notes
Most of the changes in 2.0 are in private functions and variables. There are a few public API changes that could impact users: $lp_err, $LP_DISABLED_VCS_PATH, $LP_PATH_DEFAULT, $PROMPT_DIRTRIM, $LP_PATH_KEEP=-1, and _lp_title(). The rest are private API changes, but are still documented here.
Breaking Changes
Public Breaking Changes
$lp_err
Renamed to $lp_error
. Instead of referencing it directly, use
_lp_error()
.
Private Breaking Changes
$_LP_SHELL_bash
Now returns 1
or 0
instead of true
or false
Replace test statements like:
if $_LP_SHELL_bash; then
with:
if (( $_LP_SHELL_bash )); then
$_LP_SHELL_zsh
Now returns 1
or 0
instead of true
or false
Replace test statements like:
if $_LP_SHELL_zsh; then
with:
if (( $_LP_SHELL_zsh )); then
_lp_battery()
Return changed from stdout to $lp_battery
Replace assignment statements like:
battery="$(_lp_battery)"
with:
local lp_battery
_lp_battery
battery=$lp_battery
See also: _lp_battery()
.
_lp_battery_color()
Return changed from stdout to $lp_battery_color
Replace assignment statements like:
battery_color="$(_lp_battery_color)"
with:
local lp_battery_color
_lp_battery_color
battery_color=$lp_battery_color
See also: _lp_battery_color()
.
_lp_bzr_branch()
Return changed from stdout to $lp_vcs_branch
Recommended that _lp_vcs_branch()
is used instead.
Replace assignment statements like:
branch="$(_lp_bzr_branch)"
with:
local lp_vcs_branch
if _lp_bzr_branch; then
branch=$lp_vcs_branch
fi
_lp_bzr_branch_color()
Removed, replace by _lp_vcs_details_color()
.
If the exact previous output is needed, you can implement a theme function using Version Control Data Functions.
Replace assignment statements like:
LP_VCS="$(_lp_bzr_branch_color)"
with:
if _lp_find_vcs;
local lp_vcs_details_color
_lp_vcs_details_color
LP_VCS=$lp_vcs_details_color
fi
_lp_color_map()
Return changed from stdout to $ret
Replace assignment statements like:
output="$(_lp_color_map "$input")"
with:
local ret
_lp_color_map "$input"
output=$ret
See also: _lp_color_map()
.
_lp_connection()
Return changed from stdout to $lp_connection
Replace assignment statements like:
connection="$(_lp_connection)"
with:
local lp_connection
_lp_connection
connection=$lp_connection
See also: _lp_connection()
.
_lp_escape()
Renamed to __lp_escape
.
Return changed from stdout to $ret
Replace assignment statements like:
output="$(_lp_escape "$input")"
with:
local ret
__lp_escape "$input"
output=$ret
_lp_fossil_branch()
Return changed from stdout to $lp_vcs_branch
Recommended that _lp_vcs_branch()
is used instead.
No longer returns “no-branch” if branch not found.
Replace assignment statements like:
branch="$(_lp_fossil_branch)"
with:
local lp_vcs_branch
if _lp_fossil_branch; then
branch=$lp_vcs_branch
else
branch="no-branch"
fi
_lp_fossil_branch_color()
Removed, replace by _lp_vcs_details_color()
.
If the exact previous output is needed, you can implement a theme function using Version Control Data Functions.
Replace assignment statements like:
LP_VCS="$(_lp_fossil_branch_color)"
with:
if _lp_find_vcs;
local lp_vcs_details_color
_lp_vcs_details_color
LP_VCS=$lp_vcs_details_color
fi
_lp_get_home_tilde_collapsed()
Renamed to __lp_pwd_tilde()
.
Return changed from stdout to $lp_pwd_tilde
Recommended that _lp_path_format
is used instead.
Replace assignment statements like:
working_dir="$(_lp_get_home_tilde_collapsed)"
with:
local lp_pwd_tilde
__lp_pwd_tilde
working_dir=$lp_pwd_tilde
_lp_git_branch()
Return changed from stdout to $lp_vcs_branch
Recommended that _lp_vcs_branch()
is used instead.
No longer returns commit hash if branch not found.
Replace assignment statements like:
branch="$(_lp_git_branch)"
with:
local lp_vcs_branch
if _lp_git_branch; then
branch=$lp_vcs_branch
else
local lp_vcs_commit_id
_lp_git_commit_id
branch=$lp_vcs_commit_id
fi
_lp_git_branch_color()
Removed, replace by _lp_vcs_details_color()
.
Replace assignment statements like:
LP_VCS="$(_lp_git_branch_color)"
with:
if _lp_find_vcs;
local lp_vcs_details_color
_lp_vcs_details_color
LP_VCS=$lp_vcs_details_color
fi
_lp_git_head_status()
Return changed from stdout to $lp_vcs_head_status
Recommended that _lp_vcs_head_status()
is used instead.
Replace assignment statements like:
head_status="$(_lp_git_head_status)"
with:
local lp_vcs_head_status
_lp_git_head_status
head_status=$lp_vcs_head_status
See also: _lp_git_head_status()
.
_lp_hg_branch()
Return changed from stdout to $lp_vcs_branch
Recommended that _lp_vcs_branch()
is used instead.
Replace assignment statements like:
branch="$(_lp_hg_branch)"
with:
local lp_vcs_branch
if _lp_hg_branch; then
branch=$lp_vcs_branch
fi
_lp_hg_branch_color()
Removed, replace by _lp_vcs_details_color()
.
If the exact previous output is needed, you can implement a theme function using Version Control Data Functions.
Replace assignment statements like:
LP_VCS="$(_lp_hg_branch_color)"
with:
if _lp_find_vcs;
local lp_vcs_details_color
_lp_vcs_details_color
LP_VCS=$lp_vcs_details_color
fi
_lp_jobcount_color()
Return changed from stdout to $lp_jobcount_color
Replace assignment statements like:
jobcount_color="$(_lp_jobcount_color)"
with:
local lp_jobcount_color
_lp_jobcount_color
jobcount_color=$lp_jobcount_color
See also: _lp_jobcount_color()
.
_lp_load_color()
Return changed from stdout to $lp_load_color
Replace assignment statements like:
load_color="$(_lp_load_color)"
with:
local lp_load_color
_lp_load_color
load_color=$lp_load_color
See also: _lp_load_color()
.
_lp_runtime()
Renamed to _lp_runtime_color()
.
Return changed from stdout to $lp_runtime_color
Replace assignment statements like:
runtime_color="$(_lp_runtime)"
with:
local lp_runtime_color
_lp_runtime_color
runtime_color=$lp_runtime_color
_lp_runtime_after()
Renamed to __lp_runtime_after()
.
Recommended to not use this internal function.
_lp_runtime_before()
Renamed to __lp_runtime_before()
.
Recommended to not use this internal function.
_lp_set_dirtrim()
Removed and replaced by _lp_path_format
.
Support for \w
in PS1
has been dropped.
_lp_set_prompt()
Renamed to __lp_set_prompt
.
Recommended to not use this internal function.
_lp_shorten_path()
Removed and replaced by _lp_path_format()
.
Replace assignment statements like:
cwd="$(_lp_shorten_path)"
with:
local lp_path_format
_lp_path_format "$LP_COLOR_PATH" "$LP_COLOR_PATH_LAST_DIR" "$LP_COLOR_PATH_VCS_ROOT" "$LP_COLOR_PATH_SHORTENED" "/" "$LP_COLOR_PATH_SEPARATOR"
cwd=$lp_path_format
_lp_smart_mark()
Return changed from stdout to $lp_smart_mark
Replace assignment statements like:
mark="$(_lp_smart_mark)"
with:
local lp_smart_mark
_lp_smart_mark
mark=$lp_smart_mark
See also: _lp_smart_mark()
.
_lp_source_config()
Renamed to __lp_source_config
.
Recommended to not use this internal function.
_lp_svn_branch()
Return changed from stdout to $lp_vcs_branch
Recommended that _lp_vcs_branch()
is used instead.
No longer returns directory name if branch not found.
Replace assignment statements like:
branch="$(_lp_svn_branch)"
with:
local lp_vcs_branch
if _lp_svn_branch; then
branch=$lp_vcs_branch
else
local lp_vcs_commit_id
_lp_svn_commit_id
branch=$lp_vcs_commit_id
fi
_lp_svn_branch_color()
Removed, replace by _lp_vcs_details_color()
.
If the exact previous output is needed, you can implement a theme function using Version Control Data Functions.
Replace assignment statements like:
LP_VCS="$(_lp_svn_branch_color)"
with:
if _lp_find_vcs;
local lp_vcs_details_color
_lp_vcs_details_color
LP_VCS=$lp_vcs_details_color
fi
_lp_temp_acpi()
Renamed to __lp_temp_acpi()
.
Recommended that _lp_temperature()
is used instead.
Return changed from $temperature
to $lp_temperature
.
Replace statements like:
_lp_temp_acpi
# use $temperature
with:
__lp_temp_acpi
# use $lp_temperature
_lp_temp_detect()
Renamed to __lp_temp_detect()
.
Recommended to not use this internal function.
_lp_temp_sensors()
Renamed to __lp_temp_sensors()
.
Recommended that _lp_temperature()
is used instead.
Return changed from $temperature
to $lp_temperature
.
Replace statements like:
_lp_temp_sensors
# use $temperature
with:
__lp_temp_sensors
# use $lp_temperature
_lp_temperature()
Renamed to _lp_temperature_color()
.
Return changed from stdout to $lp_temperature_color
Replace assignment statements like:
temp_color="$(_lp_temperature)"
with:
local lp_temperature_color
_lp_temperature_color
temp_color=$lp_temperature_color
Not to be confused with the new _lp_temperature()
.
_lp_time()
Split into _lp_time()
, _lp_time_color()
,
_lp_analog_time()
, and _lp_analog_time_color()
.
The return value is no longer stored in LP_TIME
.
Replace statements like:
_lp_time
with:
local lp_time_color lp_analog_time_color
if _lp_time_color; then
LP_TIME="${lp_time_color} "
elif _lp_analog_time_color; then
LP_TIME="${lp_analog_time_color} "
else
LP_TIME=
fi
_lp_upwards_find()
Replaced by _lp_find_vcs()
.
Replace statements like:
_lp_upwards_find .hg || return
with:
local lp_vcs_type lp_vcs_root
_lp_find_vcs && [[ $lp_vcs_type == hg ]] || return
Deprecations
Public Deprecations
$LP_DISABLED_VCS_PATH
Replaced by LP_DISABLED_VCS_PATHS
array variable.
Replace a set statement like:
LP_DISABLED_VCS_PATH="/my/one/path:/my/other/path"
with:
LP_DISABLED_VCS_PATHS=("/my/one/path" "/my/other/path")
$LP_PATH_DEFAULT
Replaced by LP_PATH_METHOD
.
If one of the many new shortening methods does not effectively replace your use case, please open an enhancement request.
$PROMPT_DIRTRIM
$PROMPT_DIRTRIM
calculation is no longer supported. Replaced by
LP_PATH_METHOD
set to truncate_chars_from_path_left
.
$LP_PATH_KEEP=-1
LP_PATH_KEEP
set to -1
is replaced by LP_PATH_METHOD
set to
truncate_to_last_dir
.
_lp_title()
Replaced by _lp_formatted_title()
.
Most likely would have been used in a template or .ps1
file.
Replace a call like:
LP_TITLE="$(_lp_title "$PS1")"
PS1="${LP_TITLE}${PS1}"
with:
_lp_formatted_title "$PS1"
Private Deprecations
_lp_bool()
Replaced by manually storing return codes.
Most often, the return code can be used in an if
block, and never needs to
be stored:
if _lp_http_proxy; then
...
If the function returns a more complicated return code, you can store it like this:
_lp_user
local -i code="$?"
or like this if the code only matters if it is not zero:
_lp_user || local -i code="$?"
_lp_sb()
Replaced by data functions indicating if they returned data or not. For example:
if _lp_http_proxy; then
my_data="${lp_http_proxy} "
else
my_data=""
fi
If the string source is not a data function, you can replace this function with a structure like:
[[ -n $my_data ]] && my_data=" ${my_data} "
With spaces before or after as needed.
_lp_sl()
See _lp_sb()
above.
_lp_sr()
See _lp_sb()
above.