0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Bash と Caddy サーバで ActivityPub のインスタンス(16) 色々まとめる

Posted at

timeline.html と notification.html を一枚で表示できるようにする

main.html
<html>

	<frameset cols="65%, 35%">
		<frame src="timeline.html" NAME="F1">
		<frame src="notification.html" NAME="F2">
	</trameset>

<html>

サーバサイドのシェルをまとめる

サーバサイドとしてやっていることを並べると

  1. Caddy サーバで host-meta / webfinger / アクター情報などを提供しつつ
  2. Caddy サーバで指定したポート(もしくは Unix ドメインソケット)へ inbox へやってくるリクエストを流し
  3. それを netcat で受けて処理し、202 or 204 に振り分けて
  4. sort_req_file.sh で 202 ディレクトリのファイルを receive ディレクトリの各種ディレクトリへ送り
  5. make_timeline.sh で receive ディレクトリの create / announce ディレクトリのリクエストを html にし tmeline.html に追加して create_done/announce_done へ送り
  6. make_notification.sh で receive ディレクトリの like / follow_request / accept / undo_follow ディレクトリのリクエストを html にし notification.html に追加して like_done / follow_request_done / accept_done / undo_follow_done に送る
  7. 1-3 を行いつつ 4-6 を繰り返す

である。
これらをそのまま並べる。

baca_server.sh
#!/bin/bash

# Don't miss "sudo"

trap 'kill $(jobs -p)' EXIT # Ctrl+C で止めたらプロセス全殺し

./caddy run &

function rec_proc_req(){
while :; do cat response | netcat -lN 1682 | bash response_move.sh ; done
}

rec_proc_req &


while :; do
	bash ./scripts/sort_req_file.sh
	bash ./scripts/make_timeline.sh
	bash ./scripts/make_notification.sh
	sleep 30
done

「baca_server」って何だよ? という向きもいるかもしれないが、 このインスタンスの名前は Baca である である。

sudo bash baca_server.sh

sudo を付けないと verify.sh で使われている rm の y/n 問答で止まる。どちらにせよ sudo は必要だが気になるなら rm -f にするといいのでは。多分。

クライアントもまとめる

bash ./scripts/note

とやるのも面倒なので単純に case を使って番号で選ぶようにする。

baca_client.sh
#!/bin/bash


read -p "What wanna ?: 
Note:1 Reply:2 Follow:3 Unfollow:4
Accept:5 Like:6 Announce:7
" number

case $number in
	1) bash ./scripts/note.sh;;
	2) bash ./scripts/reply.sh;;
	3) bash ./scripts/follow.sh;;
	4) bash ./scripts/unfollow.sh;;
	5) bash ./scripts/accept.sh;;
	6) bash ./scripts/like.sh;;
	7) bash ./scripts/announce.sh;;
esac

参考記事

bashスクリプトで子プロセスを全部殺すイディオム

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?