mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2025-02-22 09:39:55 +08:00
fish install and updated functions
This commit is contained in:
parent
e2d9ad8ff4
commit
21848fdf80
@ -1,4 +1,6 @@
|
|||||||
function Plugin --argument-names name
|
function Plugin --argument-names name
|
||||||
|
set -g fish_plugins $fish_plugins $name
|
||||||
|
|
||||||
if [ -e $fish_path/plugins/$name -o -e $fish_custom/plugins/$name ]
|
if [ -e $fish_path/plugins/$name -o -e $fish_custom/plugins/$name ]
|
||||||
import plugins/$name
|
import plugins/$name
|
||||||
else
|
else
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
function Theme --argument-names name
|
function Theme --argument-names name
|
||||||
|
set -g fish_theme $name
|
||||||
|
|
||||||
if [ -e $fish_path/themes/$name -o -e $fish_custom/themes/$name ]
|
if [ -e $fish_path/themes/$name -o -e $fish_custom/themes/$name ]
|
||||||
import themes/$name
|
import themes/$name
|
||||||
else
|
else
|
||||||
|
20
functions/fish.fish
Normal file
20
functions/fish.fish
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# NAME
|
||||||
|
# fish - Extend default fish binary
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
# Extend fish binary to support plugins and themes installation
|
||||||
|
#
|
||||||
|
function fish -d "Extend fish binary"
|
||||||
|
if test (count $argv) -gt 0
|
||||||
|
switch $argv[1]
|
||||||
|
case 'install'
|
||||||
|
fish.packages --install
|
||||||
|
case 'update'
|
||||||
|
fish.packages --update
|
||||||
|
case '*'
|
||||||
|
command fish $argv
|
||||||
|
end
|
||||||
|
else
|
||||||
|
command fish
|
||||||
|
end
|
||||||
|
end
|
17
functions/fish.log.fish
Normal file
17
functions/fish.log.fish
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# NAME
|
||||||
|
# fish.log - simple log with color
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
# <string> [<string>...]
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
# Simply log a message with a specified color.
|
||||||
|
#
|
||||||
|
function fish.log -d "Simple log with color"
|
||||||
|
switch $argv[1]
|
||||||
|
case '-*'
|
||||||
|
echo $argv[1] (set_color $argv[2])$argv[3..-1](set_color normal)
|
||||||
|
case '*'
|
||||||
|
echo -e (set_color $argv[1])$argv[2..-1](set_color normal)
|
||||||
|
end
|
||||||
|
end
|
28
functions/fish.packages.fish
Normal file
28
functions/fish.packages.fish
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# NAME
|
||||||
|
# fish.packages - Manage all plugins and themes
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
# fish.packages [OPTIONS]
|
||||||
|
#
|
||||||
|
# OPTIONS
|
||||||
|
# --install
|
||||||
|
# Install all packages
|
||||||
|
# --update
|
||||||
|
# Update all packages
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
# Manage all plugins and themes specified on the $fish_plugins
|
||||||
|
# and $fish_theme variables
|
||||||
|
#
|
||||||
|
function fish.packages --argument-names options -d 'Manage all plugins and themes'
|
||||||
|
set -l modified_packages 0
|
||||||
|
|
||||||
|
switch $options
|
||||||
|
case "--install"
|
||||||
|
fish.packages.install
|
||||||
|
case "--update"
|
||||||
|
fish.packages.update
|
||||||
|
case "*"
|
||||||
|
fish.log red 'Unknown option'
|
||||||
|
end
|
||||||
|
end
|
36
functions/fish.packages.install.fish
Normal file
36
functions/fish.packages.install.fish
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# NAME
|
||||||
|
# fish.packages.install - Install all plugins and themes
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
# Install all plugins and themes specified on the $fish_plugins
|
||||||
|
# and $fish_theme variables
|
||||||
|
#
|
||||||
|
function fish.packages.install -d "Install all plugins and themes"
|
||||||
|
set -l installed_packages 0
|
||||||
|
|
||||||
|
# Plugins
|
||||||
|
for plugin in $fish_plugins
|
||||||
|
if [ -e $fish_path/plugins/$plugin -o -e $fish_custom/plugins/$plugin ]
|
||||||
|
#echo "$plugin is already installed. Skipping."
|
||||||
|
else
|
||||||
|
fish.log -n white "Installing $plugin... "
|
||||||
|
git clone "https://github.com/oh-my-fish/plugins-$plugin" $fish_path/plugins/$plugin ^ /dev/null
|
||||||
|
fish.log green "√"
|
||||||
|
set -l installed_packages 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Theme
|
||||||
|
if [ -e $fish_path/themes/$fish_theme -o -e $fish_custom/themes/$fish_theme ]
|
||||||
|
#echo "$fish_theme is already installed. Skipping."
|
||||||
|
else
|
||||||
|
fish.log -n white "Installing $fish_theme... "
|
||||||
|
git clone "https://github.com/oh-my-fish/themes-$fish_theme" $fish_path/themes/$fish_theme ^ /dev/null
|
||||||
|
fish.log green "√"
|
||||||
|
set -l installed_packages 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if [ $installed_packages -eq 0 ]
|
||||||
|
fish.log green 'All plugins were already installed.'
|
||||||
|
end
|
||||||
|
end
|
53
functions/fish.packages.update.fish
Normal file
53
functions/fish.packages.update.fish
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# NAME
|
||||||
|
# fish.packages.update - Update all plugins and themes
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
# Update all plugins and themes specified on the $fish_plugins
|
||||||
|
# and $fish_theme variables
|
||||||
|
#
|
||||||
|
function fish.packages.update -d "Update all plugins and themes"
|
||||||
|
set -l installed_packages 0
|
||||||
|
pushd
|
||||||
|
|
||||||
|
# Plugins
|
||||||
|
for plugin in $fish_plugins
|
||||||
|
if [ -e $fish_path/plugins/$plugin -a -e $fish_path/plugins/$plugin/.git ]
|
||||||
|
fish.log -n white "Updating $plugin... "
|
||||||
|
echo (cd $fish_path/plugins/$plugin; and git pull --rebase > /dev/null) >/dev/null
|
||||||
|
fish.log green "√"
|
||||||
|
set -l installed_packages 1
|
||||||
|
else
|
||||||
|
if [ -e $fish_custom/plugins/$plugin -a -e $fish_custom/plugins/$plugin/.git ]
|
||||||
|
fish.log -n white "Updating $plugin... "
|
||||||
|
echo (cd $fish_custom/plugins/$plugin; and git pull --rebase > /dev/null) >/dev/null
|
||||||
|
fish.log green "√"
|
||||||
|
set -l installed_packages 1
|
||||||
|
else
|
||||||
|
#echo "$plugin is not installed or not a git repo. Skipping."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Theme
|
||||||
|
if [ -e $fish_path/themes/$fish_theme -a -e $fish_path/themes/$fish_theme/.git ]
|
||||||
|
fish.log -n white "Updating $fish_theme... "
|
||||||
|
echo (cd $fish_path/themes/$fish_theme; and git pull --rebase > /dev/null) >/dev/null
|
||||||
|
fish.log green "√"
|
||||||
|
set -l installed_packages 1
|
||||||
|
else
|
||||||
|
if [ -e $fish_custom/themes/$fish_theme -a -e $fish_custom/themes/$fish_theme/.git ]
|
||||||
|
fish.log -n white "Updating $fish_theme... "
|
||||||
|
echo (cd $fish_custom/themes/$fish_theme; and git pull --rebase > /dev/null) >/dev/null
|
||||||
|
fish.log green "√"
|
||||||
|
set -l installed_packages 1
|
||||||
|
else
|
||||||
|
#echo "$fish_theme is not installed or not a git repo. Skipping."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if [ $installed_packages -eq 0 ]
|
||||||
|
fish.log green 'No plugins to update.'
|
||||||
|
end
|
||||||
|
|
||||||
|
popd
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user