aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules9
-rw-r--r--config/fish/config.fish12
m---------config/fish/fink0
-rw-r--r--config/fish/fishfile4
-rw-r--r--config/fish/functions/fish_prompt.fish77
m---------config/fish/mark0
m---------config/fish/wd0
-rw-r--r--setup.py96
8 files changed, 77 insertions, 121 deletions
diff --git a/.gitmodules b/.gitmodules
index 4f5a7c9..3cfea36 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,12 +16,3 @@
[submodule "vim/bundle/nerdcommenter"]
path = vim/bundle/nerdcommenter
url = https://github.com/scrooloose/nerdcommenter.git
-[submodule "config/fish/wd"]
- path = config/fish/wd
- url = https://github.com/fischerling/plugin-wd
-[submodule "config/fish/mark"]
- path = config/fish/mark
- url = https://github.com/fischerling/mark
-[submodule "config/fish/fink"]
- path = config/fish/fink
- url = https://github.com/fischerling/fink
diff --git a/config/fish/config.fish b/config/fish/config.fish
index 4252aa7..736f8bd 100644
--- a/config/fish/config.fish
+++ b/config/fish/config.fish
@@ -6,18 +6,6 @@ set fish_completion_path $HOME/.dotfiles/config/fish/completions $fish_completio
# add git-alias subdirectory to functions path
set fish_function_path $HOME/.dotfiles/config/fish/functions/git-alias $fish_function_path
-# include wd
-set fish_function_path $HOME/.dotfiles/config/fish/wd/functions $fish_function_path
-set fish_complete_path $HOME/.dotfiles/config/fish/wd/completions $fish_complete_path
-
-# include mark
-set fish_function_path $HOME/.dotfiles/config/fish/mark/functions $fish_function_path
-set fish_complete_path $HOME/.dotfiles/config/fish/mark/completions $fish_complete_path
-
-# include fink
-set fish_function_path $HOME/.dotfiles/config/fish/fink/functions $fish_function_path
-set fish_complete_path $HOME/.dotfiles/config/fish/fink/completions $fish_complete_path
-
# include cargo binaries
if type -q multirust
for p in $HOME/.multirust/toolchains/*/cargo/bin
diff --git a/config/fish/fink b/config/fish/fink
deleted file mode 160000
-Subproject 7746ab547f266c59b24bc987cf7f24398a0ed25
diff --git a/config/fish/fishfile b/config/fish/fishfile
new file mode 100644
index 0000000..69c7b70
--- /dev/null
+++ b/config/fish/fishfile
@@ -0,0 +1,4 @@
+fisherman/bobthefish
+fischerling/fink
+fischerling/mark
+fischerling/plugin-wd
diff --git a/config/fish/functions/fish_prompt.fish b/config/fish/functions/fish_prompt.fish
deleted file mode 100644
index 0a39fe7..0000000
--- a/config/fish/functions/fish_prompt.fish
+++ /dev/null
@@ -1,77 +0,0 @@
-function fish_prompt --description 'Write out the prompt'
-
- set -l last_status $status
-
- # Just calculate these once, to save a few cycles when displaying the prompt
- if not set -q __fish_prompt_hostname
- set -g __fish_prompt_hostname (hostname|cut -d . -f 1)
- end
-
- if not set -q __fish_prompt_normal
- set -g __fish_prompt_normal (set_color normal)
- end
-
- if not set -q -g __fish_classic_git_functions_defined
- set -g __fish_classic_git_functions_defined
-
- function __fish_repaint_user --on-variable fish_color_user --description "Event handler, repaint when fish_color_user changes"
- if status --is-interactive
- set -e __fish_prompt_user
- commandline -f repaint ^/dev/null
- end
- end
-
- function __fish_repaint_host --on-variable fish_color_host --description "Event handler, repaint when fish_color_host changes"
- if status --is-interactive
- set -e __fish_prompt_host
- commandline -f repaint ^/dev/null
- end
- end
-
- function __fish_repaint_status --on-variable fish_color_status --description "Event handler; repaint when fish_color_status changes"
- if status --is-interactive
- set -e __fish_prompt_status
- commandline -f repaint ^/dev/null
- end
- end
- end
-
- set -l delim '>'
-
- switch $USER
-
- case root
-
- if not set -q __fish_prompt_cwd
- if set -q fish_color_cwd_root
- set -g __fish_prompt_cwd (set_color $fish_color_cwd_root)
- else
- set -g __fish_prompt_cwd (set_color $fish_color_cwd)
- end
- end
-
- case '*'
-
- if not set -q __fish_prompt_cwd
- set -g __fish_prompt_cwd (set_color $fish_color_cwd)
- end
-
- end
-
- set -l prompt_status
- if test $last_status -ne 0
- if not set -q __fish_prompt_status
- set -g __fish_prompt_status (set_color $fish_color_status)
- end
- set prompt_status "$__fish_prompt_status [$last_status]$__fish_prompt_normal"
- end
-
- if not set -q __fish_prompt_user
- set -g __fish_prompt_user (set_color $fish_color_user)
- end
- if not set -q __fish_prompt_host
- set -g __fish_prompt_host (set_color $fish_color_host)
- end
-
- echo -n -s "$__fish_prompt_user" "$USER" "$__fish_prompt_normal" @ "$__fish_prompt_host" "$__fish_prompt_hostname" "$__fish_prompt_normal" ' ' "$__fish_prompt_cwd" (prompt_pwd) (__fish_git_prompt) "$__fish_prompt_normal" "$prompt_status" "$delim" ' '
-end
diff --git a/config/fish/mark b/config/fish/mark
deleted file mode 160000
-Subproject 552edcc7f97b8eddbd6a97481b4d04f0704748c
diff --git a/config/fish/wd b/config/fish/wd
deleted file mode 160000
-Subproject e9788d4c5deae7567338c810c6d3ba130faa9a6
diff --git a/setup.py b/setup.py
index 6096624..bfc6196 100644
--- a/setup.py
+++ b/setup.py
@@ -5,36 +5,86 @@ import sys
home_dir = os.getenv("HOME")
-targets = {"vimrc": ("vimrc", home_dir + "/.vimrc"),
- "vim.d": ("vim", home_dir + "/.vim"),
- "ssh-config": ("ssh/config", home_dir + "/.ssh/config"),
- "xinitrc": ("xinitrc", home_dir + "/.xinitrc"),
- "Xresources": ("Xresources", home_dir + "/.Xresources"),
- "muttrc": ("muttrc", home_dir + "/.muttrc"),
- "zshrc": ("zshrc", home_dir + "/zshrc"),
- "i3-config": ("i3", home_dir + "/.i3"),
- "dir_colors": ("dir_colors", home_dir + "/.dir_colors"),
- "fish-config": ("config/fish/config.fish", home_dir + "/.config/fish/config.fish"),
- "terminator-config": ("config/terminator/config", home_dir + "/.config/terminator/config")}
-
-git_submodules_for = ["vim.d", "fish-config"]
+def fish_config(quiet):
+ """install and run fisherman"""
+ # download fisherman
+ import urllib.request
+ import subprocess
+
+ if not quiet:
+ print("Installing fisherman, see: https://github.com/fisherman/fisherman")
+ with urllib.request.urlopen("https://git.io/fisherman") as f:
+ fisher = f.read().decode("utf-8")
+
+ dir_path = home_dir+"/.config/fish/functions/"
+ # install fisherman at $fish_config/functions/
+ if not os.path.exists(dir_path):
+ os.mkdir(dir_path)
+ else:
+ if not os.path.exists(dir_path+"fisher.fish"):
+ file = open(dir_path+"fisher.fish", 'w')
+ file.write(fisher)
+ else:
+ if not quiet:
+ print("fisherman all ready installed")
+ return
+
+ if not quiet:
+ print("Installed fisherman -> execute fisher to pull plugins")
+
+ subprocess.run(["fish", dir_path+"fisher.fish"])
+
+# targets are a list of tuples<file name, link destination> and/or functions
+
+targets = {"vimrc": [("vimrc", home_dir + "/.vimrc")],
+ "vim.d": [("vim", home_dir + "/.vim")],
+ "ssh-config": [("ssh/config", home_dir + "/.ssh/config")],
+ "xinitrc": [("xinitrc", home_dir + "/.xinitrc")],
+ "Xresources": [("Xresources", home_dir + "/.Xresources")],
+ "muttrc": [("muttrc", home_dir + "/.muttrc")],
+ "zshrc": [("zshrc", home_dir + "/zshrc")],
+ "i3-config": [("i3", home_dir + "/.i3")],
+ "dir_colors": [("dir_colors", home_dir + "/.dir_colors")],
+ "fish-config": [("config/fish/config.fish", home_dir + "/.config/fish/config.fish"),
+ ("config/fish/fishfile", home_dir + "/.config/fish/fishfile"), fish_config],
+ "terminator-config": [("config/terminator/config", home_dir + "/.config/terminator/config")]}
+
+git_submodules_for = ["vim.d"]
def install_target(target, quiet):
"""Install a target"""
- target_files = targets[target]
if not quiet:
- print("Installing", target, "to", target_files[1])
- if os.path.exists(target_files[0]):
- try:
- os.symlink(target_files[0], target_files[1])
- except FileExistsError as e:
- print(e)
- else:
- print("Can't find", target_files[0]+". Please make sure you are in the right directory.")
+ print("Installing", target, "...")
+
+ for instruction in targets[target]:
+ if isinstance(instruction, tuple):
+ if not quiet:
+ print("Installing", instruction[0], "to", instruction[1])
+ if os.path.exists(instruction[0]):
+ try:
+ os.symlink(instruction[0], instruction[1])
+ except FileExistsError as e:
+ print(e, file=sys.stderr)
+ else:
+ print("Can't find", instruction[0] +
+ ". Please make sure you are in the right directory.", file=sys.stderr)
+ elif callable(instruction):
+ if not quiet:
+ print("Running function", instruction)
+ res = instruction(quiet)
+ if res:
+ if not quiet:
+ print("The instruction", instruction, "of", target, "failed with", str(res) + ".")
+ print("This can leaf your installation in a broken state")
+ print("ABORTING to prevent failures.")
+ exit(res)
+ else:
+ print("I don't understand", instruction,
+ "\nThe instruction musst be a tuple or a function.\nSKIPPING IT")
if target in git_submodules_for:
- choice = input(target + "uses git submodules want to pull them ? (Y/n)")
+ choice = input(target + " uses git submodules want to pull them ? (Y/n) ")
if choice in ["Y", "y", ""]:
import subprocess
subprocess.run(["git", "submodule", "update", "--init"])