add edit script
This commit is contained in:
parent
bc86abc051
commit
1bc17d56f5
45
user/bin/edit
Executable file
45
user/bin/edit
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "usage: $0 <file>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
first_link () {
|
||||
if [ "${1%/*}" != "$1" ]; then
|
||||
local x="$(first_link "${1%/*}")"
|
||||
fi
|
||||
if [ -z "$x" ] && [ -L "$1" ]; then
|
||||
echo "$1"
|
||||
else
|
||||
echo "$x"
|
||||
fi
|
||||
}
|
||||
|
||||
NIX="$HOME/.local/nixos/user"
|
||||
FIRST="$(first_link "$(realpath -s "$1")")"
|
||||
if ! [ -z "$FIRST" ]; then
|
||||
LINKED="$(realpath "$FIRST")"
|
||||
if [ "${LINKED#/nix/store/}" != "$LINKED" ]; then
|
||||
CONFIG="${FIRST#~/.config/}"
|
||||
if [ "$CONFIG" != "$FIRST" ] && [ -e "$NIX/config/$CONFIG" ]; then
|
||||
rm "$FIRST"
|
||||
ln -s "$NIX/config/$CONFIG" "$FIRST"
|
||||
$EDITOR "$1"
|
||||
exit
|
||||
fi
|
||||
BIN="${FIRST#~/.local/bin}"
|
||||
if [ "$BIN" != "$FIRST" ] && [ -e "$NIX/bin/$BIN" ]; then
|
||||
rm "$FIRST"
|
||||
ln -s "$NIX/bin/$BIN" "$FIRST"
|
||||
$EDITOR "$1"
|
||||
exit
|
||||
fi
|
||||
echo "not symlinkable"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if ! [ -e "$1" ]; then
|
||||
DIR="${1%/*}"
|
||||
[ "$DIR" != "$1" ] && mkdir -p "$DIR"
|
||||
fi
|
||||
$EDITOR "$1"
|
||||
Loading…
Reference in a new issue