fisher v4: integrate dependencies

fisher doesn't do dependencies anymore (fishfile) - https://github.com/jorgebucaran/fisher/releases/tag/4.0.0
pull/1/head
lowne 4 years ago
parent b705b4a23f
commit 558d5b3e9d

@ -1,7 +0,0 @@
fishpkg/fish-segment
fishpkg/fish-git-util
fishpkg/fish-pwd-is-home
fishpkg/fish-host-info
fishpkg/fish-last-job-id
fishpkg/fish-humanize-duration
fishpkg/fish-pwd-info

@ -0,0 +1,8 @@
function git_ahead -a ahead behind diverged none
command git rev-list --count --left-right "@{upstream}...HEAD" 2>/dev/null | command awk "
/^0\t0/ { print \"$none\" ? \"$none\" : \"\"; exit 0 }
/^[0-9]+\t0/ { print \"$behind\" ? \"$behind\" : \"-\"; exit 0 }
/^0\t[0-9]+/ { print \"$ahead\" ? \"$ahead\" : \"+\"; exit 0 }
// { print \"$diverged\" ? \"$diverged\" : \"±\"; exit 0 }
"
end

@ -0,0 +1,15 @@
function git_branch_name -d "Get the name of the current Git branch, tag or sha1"
set -l branch_name (command git symbolic-ref --short HEAD 2>/dev/null)
if test -z "$branch_name"
set -l tag_name (command git describe --tags --exact-match HEAD 2>/dev/null)
if test -z "$tag_name"
command git rev-parse --short HEAD 2>/dev/null
else
printf "%s\n" "$tag_name"
end
else
printf "%s\n" "$branch_name"
end
end

@ -0,0 +1,3 @@
function git_is_detached_head -d "Test if the repository is in a detached HEAD state"
git_is_repo; and not command git symbolic-ref HEAD 2>/dev/null > /dev/null
end

@ -0,0 +1,3 @@
function git_is_dirty -d "Test if there are changes not staged for commit"
git_is_repo; and not command git diff --no-ext-diff --quiet --exit-code 2>/dev/null
end

@ -0,0 +1,3 @@
function git_is_empty -d "Test if a repository is empty"
git_is_repo; and test -z (command git rev-list -n 1 --all 2>/dev/null)
end

@ -0,0 +1,5 @@
function git_is_repo -d "Test if the current directory is a Git repository"
if not command git rev-parse --git-dir > /dev/null 2>/dev/null
return 1
end
end

@ -0,0 +1,3 @@
function git_is_staged -d "Test if there are changes staged for commit"
git_is_repo; and not command git diff --cached --no-ext-diff --quiet --exit-code 2>/dev/null
end

@ -0,0 +1,3 @@
function git_is_stashed -d "Test if there are changes in the Git stash"
command git rev-parse --verify --quiet refs/stash > /dev/null 2>/dev/null
end

@ -0,0 +1,3 @@
function git_is_tag -d "Test if HEAD is on top of a tag (can be simple, annotated or signed)"
git_is_detached_head; and command git describe --tags --exact-match HEAD 2>/dev/null > /dev/null
end

@ -0,0 +1,3 @@
function git_is_touched -d "Test if there are any changes in the working tree"
git_is_staged; or git_is_dirty
end

@ -0,0 +1,3 @@
function git_repository_root -d "Get the top level directory of the current git repository"
git_is_repo; and command git rev-parse --show-toplevel
end

@ -0,0 +1,15 @@
function git_untracked_files -d "Get the number of untracked files in a repository"
git_is_repo; and command git ls-files --others --exclude-standard | command awk '
BEGIN {
n = 0
}
{ n++ }
END {
print n
exit !n
}
'
end

@ -0,0 +1,16 @@
function host_info -d "Get user and hostname information" -a format
set -l host (uname -n)
command id -un | command awk -v host="$host" -v format="$format" '
BEGIN { if (format == "") format = "user@host" }
{
user = $0
if (!sub("usr", substr(user, 1, 1), format)) {
sub("user", user, format)
}
len = split(host, host_info, ".")
sub("host", host_info[1], format)
sub("domain", len > 1 ? host_info[2] : "", format)
print(format)
}
'
end

@ -0,0 +1,19 @@
function humanize_duration -d "Make a time interval human readable"
command awk '
function hmTime(time, stamp) {
split("h:m:s:ms", units, ":")
for (i = 2; i >= -1; i--) {
if (t = int( i < 0 ? time % 1000 : time / (60 ^ i * 1000) % 60 )) {
stamp = stamp t units[sqrt((i - 2) ^ 2) + 1] " "
}
}
if (stamp ~ /^ *$/) {
return "0ms"
}
return substr(stamp, 1, length(stamp) - 1)
}
{
print hmTime($0)
}
'
end

@ -0,0 +1,3 @@
function last_job_id
jobs $argv | command awk '/^[0-9]+\t/ { print status = $1 } END { exit !status }'
end

@ -0,0 +1,43 @@
function pwd_info -a separator -d "Print easy-to-parse information the current working directory"
set -l home ~
set -l git_root (command git rev-parse --show-toplevel ^ /dev/null)
command pwd -P | awk -v home="$home" -v git_root="$git_root" -v separator="$separator" -v dir_length="$fish_prompt_pwd_dir_length" '
function base(string) {
sub(/^\/?.*\//, "", string)
return string
}
function dirs(string, printLastName, prefix, path) {
len = split(string, parts, "/")
for (i = 1; i < len; i++) {
name = dir_length == 0 ? parts[i] : substr(parts[i], 1, dir_length ? dir_length : 1)
if (parts[i] == "" || name == ".") {
continue
}
path = path prefix name
prefix = separator
}
return (printLastName == 1) ? path prefix parts[len] : path
}
function remove(thisString, fromString) {
sub(thisString, "", fromString)
return fromString
}
{
if (git_root == home) {
git_root = ""
}
if (git_root == "") {
printf("%s\n%s\n%s\n",
$0 == home || $0 == "/" ? "" : base($0),
dirs(remove(home, $0)),
"")
} else {
printf("%s\n%s\n%s\n",
base(git_root),
dirs(remove(home, git_root)),
$0 == git_root ? "" : dirs(remove(git_root, $0), 1))
}
}
'
end

@ -0,0 +1,8 @@
function pwd_is_home
switch "$PWD"
case ~{,/\*}
return 0
case \*
return 1
end
end

@ -0,0 +1,8 @@
function segment -a fg bg text -d "Add prompt segment"
if test -z "$segment_color"
set segment_color normal
end
set -g segment (set_color $fg -b $bg)"$text"(set_color $bg -b $segment_color)"$segment"
set -g segment_color $bg
end

@ -0,0 +1,8 @@
function segment_close
if test ! -z "$segment"
printf "$segment "
set segment
set segment_color
end
set_color normal
end

@ -0,0 +1,11 @@
function segment_right -a fg bg text -d "Add right prompt segment"
set -l right_color $segment_right_color
if test -z "$right_color"
set right_color $bg
end
set -g segment_right_color $fg
echo (set_color $bg)(set_color $segment_right_color -b $bg)"$text"(set_color $right_color)
end
Loading…
Cancel
Save