add more files & a readme
This commit is contained in:
parent
2c6321c136
commit
898044619b
10
AutoLaunch.scpt
Normal file
10
AutoLaunch.scpt
Normal file
@ -0,0 +1,10 @@
|
||||
property startup_script : "~/.config/bin/work.init.sh"
|
||||
|
||||
tell application "iTerm2"
|
||||
set W to create window with default profile
|
||||
|
||||
set S to current session of W
|
||||
tell S
|
||||
write text startup_script
|
||||
end tell
|
||||
end tell
|
||||
33
README.md
Normal file
33
README.md
Normal file
@ -0,0 +1,33 @@
|
||||
# Dotfiles
|
||||
|
||||
Hello, welcome to my dotfiles repository.
|
||||
|
||||
I have grown to believe that dotfiles is among the most unfiltered
|
||||
expressions of a person. Here are mine. This repository obviously
|
||||
helps me sync configuration across different machines, but I do
|
||||
also hope that it comes in handy to another stranger. To that end,
|
||||
I shall maintain an Index *(edit: **attempt to**)* of the dotfiles
|
||||
in this repository and where that might fit on your own machine.
|
||||
|
||||
+----------------------------------------------------------------------------------------------------+
|
||||
| # | File | Notes |
|
||||
+----------------------------------------------------------------------------------------------------+
|
||||
| 1 | [work.init.sh](./work.init.sh) | `~/.config/bin/work.init.sh` |
|
||||
| | | tmux-initialization script for |
|
||||
| | | my work needs. |
|
||||
+----------------------------------------------------------------------------------------------------+
|
||||
| 2 | [AutoLaunch.scpt](./AutoLaunch.scpt) | `~/Library/Application Support/iTerm2/|
|
||||
| | |Scripts/AutoLaunch.scpt` |
|
||||
| | | applescript to auto-run the above tmux|
|
||||
| | | init script when I launch `iTerm2`. |
|
||||
|----------------------------------------------------------------------------------------------------|
|
||||
| 3 | [sync-internal-dns.sh](./sync-internal-dns.sh) | `~/.config/bin/sync-internal-dns.sh` |
|
||||
| | | I already use Tailscale + Syncthing, |
|
||||
| | | but for streaming I absolutely need |
|
||||
| | | a connection over my private network |
|
||||
| | | (vs Tailscale's VPN). I've put this in|
|
||||
| | | my `crontab` to run every minute on |
|
||||
| | | all my devices. It adds a |
|
||||
| | | `$hostname.internal` entry to |
|
||||
| | | `/etc/hosts` for each machine. |
|
||||
|----------------------------------------------------------------------------------------------------|
|
||||
97
sync-internal-dns.sh
Executable file
97
sync-internal-dns.sh
Executable file
@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
self="$(hostname -s)"
|
||||
internal_hosts_file="/Users/kaustubh/Sync/internal.hosts"
|
||||
etc_hosts_file="/etc/hosts"
|
||||
|
||||
self_domain="$self.internal"
|
||||
echo "self hostname: '$self'"$'\t'"advertising as: '$self_domain'"
|
||||
|
||||
function get_self_ip {
|
||||
for w in $(/sbin/ifconfig | grep 192.168); do
|
||||
if [[ "$w" =~ ^192\.168\..* ]]; then
|
||||
echo "$w"
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
self_ip="$(get_self_ip)"
|
||||
if [ "$self_ip" = "" ]; then
|
||||
echo "oops! couldn't find private IP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function readHosts {
|
||||
# returns:
|
||||
# ip,host
|
||||
# ip,host
|
||||
# ...
|
||||
IFS=$'\n'
|
||||
while read line; do
|
||||
unset IFS
|
||||
|
||||
line=$(echo "$line" | sed -e 's/#.*$//' | sed 's/^\s*$//')
|
||||
if [ "$line" = "" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
read ip host <<< $line
|
||||
echo $ip $host
|
||||
done
|
||||
}
|
||||
|
||||
internal_hosts="$(cat $internal_hosts_file | readHosts)"
|
||||
etc_hosts="$(cat $etc_hosts_file | readHosts)"
|
||||
|
||||
echo "INTERNAL:"
|
||||
echo "$internal_hosts"
|
||||
echo "ETC:"
|
||||
echo "$etc_hosts"
|
||||
|
||||
has_self="0"
|
||||
IFS=$'\n'
|
||||
for ih in $internal_hosts; do
|
||||
unset IFS
|
||||
|
||||
read wanted_ip wanted_host <<< $ih
|
||||
echo "wanted_ip: $wanted_ip, wanted_host: $wanted_host"
|
||||
|
||||
if [ "$self_domain" = "$wanted_host" ]; then
|
||||
if [ "$self_ip" != "$wanted_ip" ]; then
|
||||
sed -i bak "s/^$wanted_ip.*$//" $internal_hosts_file
|
||||
else
|
||||
has_self="1"
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ "$has_self" != "1" ]; then
|
||||
echo "$self_ip"$'\t'"$self_domain" >> $internal_hosts_file
|
||||
fi
|
||||
|
||||
IFS=$'\n'; for ih in $internal_hosts; do
|
||||
unset IFS
|
||||
|
||||
read wanted_ip wanted_host <<< $ih
|
||||
|
||||
if [ "$wanted_host" = "$self_domain" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
fixed="0"
|
||||
IFS=$'\n'; for eh in $etc_hosts; do
|
||||
unset IFS
|
||||
read etc_ip etc_host <<< $eh
|
||||
if [ "$etc_host" = "$wanted_host" ]; then
|
||||
sed -i .bak -r "s/$etc_ip[[:space:]]+$etc_host/$wanted_ip\t$wanted_host/" $etc_hosts_file
|
||||
fixed="1"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$fixed" != "1" ]; then
|
||||
echo "$wanted_ip"$'\t'"$wanted_host" >> $etc_hosts_file
|
||||
fi
|
||||
done
|
||||
Loading…
Reference in New Issue
Block a user