35 lines
1018 B
Plaintext
35 lines
1018 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Examples:
|
||
|
# ix hello.txt # paste file (name/ext will be set).
|
||
|
# echo Hello world. | ix # read from STDIN (won't set name/ext).
|
||
|
# ix -n 1 self_destruct.txt # paste will be deleted after one read.
|
||
|
# ix -i ID hello.txt # replace ID, if you have permission.
|
||
|
# ix -d ID
|
||
|
|
||
|
ix() {
|
||
|
local opts
|
||
|
local OPTIND
|
||
|
[ -f "$HOME/.netrc" ] && opts='-n'
|
||
|
while getopts ":hd:i:n:" x; do
|
||
|
case $x in
|
||
|
h) echo "ix [-d ID] [-i ID] [-n N] [opts]"; return;;
|
||
|
d) $echo curl $opts -X DELETE ix.io/$OPTARG; return;;
|
||
|
i) opts="$opts -X PUT"; local id="$OPTARG";;
|
||
|
n) opts="$opts -F read:1=$OPTARG";;
|
||
|
esac
|
||
|
done
|
||
|
shift $(($OPTIND - 1))
|
||
|
[ -t 0 ] && {
|
||
|
local filename="$1"
|
||
|
shift
|
||
|
[ "$filename" ] && {
|
||
|
curl $opts -F f:1=@"$filename" $* ix.io/$id
|
||
|
return
|
||
|
}
|
||
|
echo "^C to cancel, ^D to send."
|
||
|
}
|
||
|
curl $opts -F f:1='<-' $* ix.io/$id
|
||
|
}
|
||
|
|
||
|
ix $*
|