summaryrefslogtreecommitdiff
path: root/init
blob: a1bedacdcdf79c64fe1b734e5d1458afb4dbefbf (plain) (blame)
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
#!/usr/bin/env fish

set homedirs dot-config dot-local-bin

for dir in $homedirs
    set -l target_base $HOME/(string replace '-' '/' (string replace -r '^dot-' '.' $dir))

    for file in (find $dir -type f)
        set -l src "$(pwd)/$file"
        set -l dst (string replace -r "^$dir/" "$target_base/" $file)
        if [ -L $dst -a "$(readlink $dst)" = $src ]
            continue
        end
        mkdir -p "$(dirname $dst)"
        ln -vs $src $dst
    end
end

for file in (find etc -type f)
    set -l src "$(pwd)/$file"
    set -l dst /$file
    if [ -f $dst ]
        if [ "$(sha1sum < $dst)" = "$(sha1sum < $src)" ]
            continue
        end
    end
    sudo -p "[sudo] password to copy $dst: " mkdir -p "$(dirname $dst)"
    sudo cp -v $src $dst
end