58 lines
1.5 KiB
Fish
Executable file
58 lines
1.5 KiB
Fish
Executable file
function transfer -d "Upload to transfer.sh" -a file name
|
|
|
|
getopts $argv | while read -l 1 2
|
|
switch "$1"
|
|
case _
|
|
continue
|
|
|
|
case h help
|
|
echo "Usage: transfer [FILE] [NAME]"
|
|
echo
|
|
echo "Examples:"
|
|
echo " transfer my-file.txt"
|
|
echo " transfer my-file.txt my-file-new-name.txt"
|
|
echo " echo my message text | transfer my-message.txt"
|
|
echo " cat my-file.txt | transfer my-file-new-name.txt"
|
|
return
|
|
|
|
case \*
|
|
printf "transfer: '%s' is not a valid option\n" $1 >& 2
|
|
transfer --help >& 2
|
|
return 1
|
|
end
|
|
end
|
|
|
|
set -l tmp (mktemp -t transferXXX)
|
|
|
|
if test -z $name
|
|
if not isatty
|
|
set name $file
|
|
else if test -n "$file"
|
|
set name (basename $file)
|
|
end
|
|
end
|
|
|
|
if test -z $name
|
|
set name (random)
|
|
end
|
|
|
|
if not isatty
|
|
set file ""
|
|
end
|
|
|
|
set name (echo $name | sed -e 's/[^a-zA-Z0-9._-]/-/g')
|
|
set name (echo $name | sed -e 's/-\{1,\}/-/g')
|
|
|
|
if test -n "$file"
|
|
if not test -r "$file"
|
|
echo "transfer: can not read the file." > /dev/stderr
|
|
return 1
|
|
end
|
|
curl --progress-bar --upload-file $file https://transfer.sh/$name >> $tmp
|
|
else
|
|
curl --progress-bar --upload-file - https://transfer.sh/$name >> $tmp
|
|
end
|
|
|
|
cat $tmp
|
|
rm -f $tmp
|
|
end
|