summaryrefslogtreecommitdiff
path: root/.config/bash/rc.d/10_aliases.sh
diff options
context:
space:
mode:
Diffstat (limited to '.config/bash/rc.d/10_aliases.sh')
-rw-r--r--.config/bash/rc.d/10_aliases.sh35
1 files changed, 31 insertions, 4 deletions
diff --git a/.config/bash/rc.d/10_aliases.sh b/.config/bash/rc.d/10_aliases.sh
index 758c069..03ece7e 100644
--- a/.config/bash/rc.d/10_aliases.sh
+++ b/.config/bash/rc.d/10_aliases.sh
@@ -68,6 +68,7 @@ alias tree='tree --charset utf8'
alias cd=pushd
alias gitk='gitk --all --date-order'
alias userctl='systemctl --user'
+alias mv='mv -i'
######################################################################
# These are actually functions :P #
@@ -81,15 +82,41 @@ term-title() {
printf "$fmt" "$*"
}
mvln() {
+ local target link
if [[ ! -L "$1" ]]; then
libremessages error 'Not a soft link: %s' "$1"
+ return 1
fi
- target=$(readlink -f -- "$1")
- ln -srT -- "$target" "$2"
- if cmp -- "$1" "$2"; then
+ if [[ -d "$2" ]]; then
+ link="$2/${1##*/}"
+ else
+ link="$2"
+ fi
+ target=$(readlink -f -- "$1") || return 1
+ ln -srT -- "$target" "$link"
+ if cmp -- "$1" "$link"; then
rm -f -- "$1"
else
- libremessages error 'Failed moving link: %s -> %s' "$1" "$2"
+ libremessages error 'Failed moving link: %s -> %s' "$1" "$link"
+ return 1
+ fi
+}
+cpln() {
+ local target link
+ if [[ ! -L "$1" ]]; then
+ libremessages error 'Not a soft link: %s' "$1"
+ return 1
+ fi
+ if [[ -d "$2" ]]; then
+ link="$2/${1##*/}"
+ else
+ link="$2"
+ fi
+ target=$(readlink -f -- "$1") || return 1
+ ln -srT -- "$target" "$link"
+ if ! cmp -- "$1" "$link"; then
+ libremessages error 'Failed copying link: %s -> %s' "$1" "$link"
+ return 1
fi
}
jarls() {