You're displaying " for " , is that there in the version on your system too? That might explain why the curl line is apparently not interpreted as one continuing line.
This is just a test. I haven't had much free time lately, but I wanted to try this out. Smudge says hi.
I did have to edit my copy to use getopt instead of getopts since I'm on OpenBSD and not GNU/Linux, but I suppose a symlink would have served equally well. I also had to change the shebang because bash doesn't live in /bin on OpenBSD.
Here's my version.
#!/usr/bin/env bash host=https://midnight.pub if [ $# -eq 0 ] then curl -F title="$(head -1 /dev/stdin)"\ -F content="$(tail -n +2 /dev/stdin)"\ -b midn="$(cat ~/.config/.midnight)"\ $host/posts/save fi while getopt "r:t:" OPTION; do case $OPTION in r) curl -F reply="$(cat /dev/stdin)"\ -b midn="$(cat ~/.config/.midnight)"\ $host/posts/$OPTARG/reply ;; t) curl -F reply="$(cat /dev/stdin)"\ -b midn="$(cat ~/.config/.midnight)"\ $host/replies/$OPTARG/save ;; *) echo "Incorrect options provided" exit 1 ;; esac done
Unfortunately, while I got the script to run it still doesn't work for me. Here are my results.
/home/starbreaker/bin/midnight: line 8: -F: command not found /home/starbreaker/bin/midnight: line 10: https://midnight.pub/posts/save: No such file or directory /home/starbreaker/bin/midnight: line 9: -b: command not found /home/starbreaker/bin/midnight: line 30: syntax error near unexpected token `done' /home/starbreaker/bin/midnight: line 30: `done' kether:/home/starbreaker/internet/midnight.pub$ curl: no URL specified! curl: try 'curl --help' or 'curl --manual' for more information
I guess I'll stick with posting from the browser for now since it wouldn't be fair to expect ~m150 to set up an OpenBSD virtual machine just to make sure midnight.sh works for me.
Besides, "cat testing-midnight-sh.gmi | xclip" works well enough for me.