aboutsummaryrefslogtreecommitdiff
path: root/bin/bin/ix
diff options
context:
space:
mode:
Diffstat (limited to 'bin/bin/ix')
-rwxr-xr-xbin/bin/ix35
1 files changed, 35 insertions, 0 deletions
diff --git a/bin/bin/ix b/bin/bin/ix
new file mode 100755
index 0000000..2cf7fa5
--- /dev/null
+++ b/bin/bin/ix
@@ -0,0 +1,35 @@
+#!/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 $*