allPagesList(shell)
from allPagesList.ts
curlとjqが必要
bash/zsh only
システムレベル
install or update
$ sudo curl "https://scrapbox.io/api/code/villagepump/allPagesList(shell)/allpageslist.zsh" -o /usr/bin/allpageslist ; sudo chmod 755 /usr/bin/allpageslist
/usr/binにスクリプトを置くのは邪道だな
$HOME/binまたは~/binに置くのが定石では suto3.icon
環境変数 $PATHに追加しておく必要があるけど
ユーザーディレクトリ内に収めれば sudoは実行しなくてよいはず
uninstall
$ sudo rm /usr/bin/allpageslist
ユーザーレベル
Goユーザーの場合(~/go/binにPATHが通ってる場合)
install or update
$ curl "https://scrapbox.io/api/code/villagepump/allPagesList(shell)/allpageslist.zsh" -o ~/go/bin/allpageslist ; chmod 755 ~/go/bin/allpageslist
uninstall
$ sudo rm ~/go/bin/allpageslist
usage
% allpageslist villagepump > allpages
$ allpageslist プロジェクト名 > 出力ファイル
code:allpageslist.zsh
#!/bin/zsh
# Linuxユーザーにとってはbashの方がいいかも
getPage() {
# $1: project name
# $2: offset
curl -s "https://scrapbox.io/api/pages/$1/?limit=1000&skip=$2" | jq -c '.pages[]' | jq -r '.title'
}
# $1: project name
PAGES=$(curl -s "https://scrapbox.io/api/pages/$1/?limit=1" | jq -c '.count')
for ((i = 0; i <= $PAGES; i=$((i+1000)))); do
getPage $1 $i
echo "$i/$PAGES" >&2
done