aboutsummaryrefslogtreecommitdiff
path: root/functions/funclnk.fish
blob: f3faa695dc00cc83acb69a9c0ee6faeaebc684b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function funclnk --description "Synchronise fish script symlinks"

function _link_fish_scripts -a fishscriptdir

  if test (count $argv) -lt 1
    return 1
  end

  set -f cfgdir "$HOME/Config"
  set -f scriptdir "$__fish_config_dir/$fishscriptdir/"
  set -f relscriptdir (string replace "$HOME" '' "$scriptdir")

  for script in (find $cfgdir -type f -path "*$relscriptdir*" -name "*.fish")
    set -l basescriptname (path basename $script)

    if test -e "$scriptdir/$basescriptname"
      continue
    end

    if ask "Add a symlink to $basescriptname to fish profile?"
      pushd $scriptdir
        ln -s (realpath --relative-to=. $script)
      popd
    end
  end

  return 0
end

_link_fish_scripts 'conf.d'
_link_fish_scripts 'functions'

functions -e _link_fish_scripts

end