2018-06-15 13:43:04 +00:00
|
|
|
#!/usr/bin/env zsh
|
2018-02-23 09:38:24 +00:00
|
|
|
|
2019-09-24 19:34:15 +00:00
|
|
|
count() { echo "$#"; }
|
2018-02-23 09:38:24 +00:00
|
|
|
|
2019-09-28 14:36:00 +00:00
|
|
|
bytecount() { wc -c "$@" | numfmt --to=iec-i; }
|
|
|
|
|
|
|
|
mkcd() { mkdir -p "$@" && cd "${@[-1]}"; }
|
2018-02-23 09:38:24 +00:00
|
|
|
|
2019-09-24 19:34:15 +00:00
|
|
|
is_linux() { [[ "$OSTYPE" == linux* ]]; }
|
|
|
|
is_macos() { [[ "$OSTYPE" == darwin* ]]; }
|
|
|
|
is_android() { [[ "$OSTYPE" == linux-android ]]; }
|
2018-08-23 20:46:00 +00:00
|
|
|
|
2019-09-24 19:34:15 +00:00
|
|
|
command_exists() { command -v "$1" &>/dev/null; }
|
2018-06-15 13:50:24 +00:00
|
|
|
|
2018-11-10 20:03:34 +00:00
|
|
|
lazy_load() {
|
2018-06-15 13:50:24 +00:00
|
|
|
local command="$1"
|
|
|
|
local init_command="$2"
|
|
|
|
|
2019-01-09 16:55:19 +00:00
|
|
|
eval "$command() {
|
|
|
|
unfunction $command
|
|
|
|
$init_command
|
|
|
|
$command \$@
|
|
|
|
}"
|
2018-06-15 13:50:24 +00:00
|
|
|
}
|
2019-03-08 18:10:30 +00:00
|
|
|
|
2019-09-24 19:34:15 +00:00
|
|
|
welcome() { "$ZSH_DOTFILES/welcome/main.py"; }
|
2019-08-28 07:46:52 +00:00
|
|
|
|
2019-08-28 07:51:30 +00:00
|
|
|
if is_android; then
|
2019-09-24 19:34:15 +00:00
|
|
|
open_cmd='termux-open'
|
|
|
|
elif command_exists xdg-open; then
|
|
|
|
open_cmd='nohup xdg-open &> /dev/null'
|
|
|
|
else
|
|
|
|
open_cmd='print >&2 "open: Platform $OSTYPE is not supported"; return 1'
|
2019-08-28 07:46:52 +00:00
|
|
|
fi
|
2019-09-24 19:34:15 +00:00
|
|
|
eval "open(){$open_cmd \"\$@\";}"
|
|
|
|
unset open_cmd
|
|
|
|
|
|
|
|
if is_macos; then
|
|
|
|
copy_cmd='pbcopy' paste_cmd='pbpaste'
|
|
|
|
elif command_exists xclip; then
|
|
|
|
copy_cmd='xclip -in -selection clipboard' paste_cmd='xclip -out -selection clipboard'
|
|
|
|
elif command_exists xsel; then
|
|
|
|
copy_cmd='xsel --clipboard --input' paste_cmd='xsel --clipboard --output'
|
|
|
|
elif command_exists termux-clipboard-set && command_exists termux-clipboard-get; then
|
|
|
|
copy_cmd='termux-clipboard-set' paste_cmd='termux-clipboard-get'
|
|
|
|
else
|
|
|
|
error_msg='Platform $OSTYPE is not supported'
|
|
|
|
copy_cmd='print >&2 "clipcopy: '"$error_msg"'"; return 1'
|
|
|
|
paste_cmd='print >&2 "clippaste: '"$error_msg"'"; return 1'
|
|
|
|
unset error_msg
|
|
|
|
fi
|
|
|
|
eval "clipcopy(){$copy_cmd;};clippaste(){$paste_cmd;}"
|
|
|
|
unset copy_cmd paste_cmd
|