summaryrefslogtreecommitdiff
path: root/merge_conf
blob: 9b87179056bcfb45bf548d8802a97a77dcc86d5c (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
#!/usr/bin/env sh

SUBMODULES=$(git submodule status | sed -E 's/ [a-z0-9]+ ([^ ]+) .*/\1/')
FILES=$(tree -aqifF --noreport --prune .local .config | sed -E '/\/$/d;s/\*$//')

for submodule in ${SUBMODULES}; do
  SS=$(printf '%s' "${submodule}" | sed 's/\//\\\//g;s/\./\\./g')
  FILES=$(printf '%s' "${FILES}" | sed -E "/${SS}/d")
done

function copy() {
  local FILE="${1}"
  echo -ne "missing $FILE\n"
  read -p "copy to local config? [y/n]:" yn
  case $yn in
    [Yy]*) cp $f ~/$f;;
    [Nn]*) return;;
  esac
}

for f in ${FILES}; do
  [ -e "${HOME}/${f}" ] || copy $f

  diff -q "${HOME}/${f}" "${f}" >/dev/null
  [ $? -ne 0 ] && vimdiff "${HOME}/${f}" "${f}"
done