-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexecutable_sync-shortcuts
More file actions
executable file
·74 lines (63 loc) · 2.19 KB
/
executable_sync-shortcuts
File metadata and controls
executable file
·74 lines (63 loc) · 2.19 KB
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash
# ensure {{{ #
# Ensure text of argument 1 exists in the file argument 2
ensure() {
if [[ ! -e "$2" ]]; then
touch "$2"
fi
(grep "$1" "$2")>/dev/null 2>&1 || echo "$1" >> "$2"
}
# }}} ensure #
# config files
bashrc="$HOME/.bashrc"
zshrc="$HOME/.zshrc"
fish_config="$HOME/.config/fish/config.fish"
ranger_config="$HOME/.config/ranger/rc.conf"
# Output locations
aliases="$HOME/aliases/.key_aliases"
fish_abbr="$HOME/.config/fish/key_abbr.fish"
ranger_mappings="$HOME/.config/ranger/key_mappings.conf"
# ensure sourcing new file in orig. config file
ensure "source $aliases" "$bashrc"
ensure "source $aliases" "$zshrc"
ensure "source $fish_abbr" "$fish_config" > /dev/null
ensure "source $ranger_mappings" "$ranger_config"
# key files
key_dirs="$HOME/aliases/key_dirs"
key_files="$HOME/aliases/key_files"
key_aliases="$HOME/aliases/key_aliases"
# Remove, prepare files
rm -f "$ranger_mappings" 2>/dev/null
printf "# vim: filetype=sh\\n" > "$fish_abbr"
printf "# vim: filetype=sh\\nalias " > "$aliases"
# Format the key file in the correct syntax and sent it to all configs.
sed "s/\s*#.*$//;/^\s*$/d" "$key_dirs" | tee \
>(awk '{print $1"=\"cd "$2" && lsd -a\" \\"}' >> "$aliases") \
>(awk '{print "abbr", $1, "\"cd", $2, "\""}' >> "$fish_abbr") \
| awk '{print "map f"$1, "cd", $2;
print "map t"$1, "tab_new", $2;
print "map m"$1, "shell mv -v %f", $2;
print "map Y"$1, "shell cp -rv %f", $2;
}' >> "$ranger_mappings"
sed "s/\s*#.*$//;/^\s*$/d" "$key_files" | tee \
>(awk '{print n$1"=\"$EDITOR "$2"\" \\"}' >> "$aliases") \
>(awk '{print "abbr n"$1, "\"$EDITOR "$2"\""}' >> "$fish_abbr") \
| awk '{print "map n"$1" shell $EDITOR "$2}' >> "$ranger_mappings"
#sed -e '/^$/d' -e '/[ ]*#.*/d' "$key_aliases" | sort | tee \
#>(awk '{printf "abbr " $1; $1 = ""; print $0; }' >> "$fish_abbr") \
#| awk '{
#printf $1;
#$1 = "";
#printf "=";
#printf gensub(" ", "", 1, $0);
#print " \\";
#}' >> "$aliases"
sed "s/\s*#.*$//;/^\s*$/d" "$key_aliases" | sort | tee \
>(awk 'NF {printf "abbr " $1; $1 = ""; print $0; }' >> "$fish_abbr") \
| awk 'NF {
printf $1 "=";
$1 = "";
# Remove leading space
sub(/^ /, "", $0);
print $0 " \\";
}' >> "$aliases"