update scpt
This commit is contained in:
147
install.zsh
Executable file
147
install.zsh
Executable file
@ -0,0 +1,147 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# ./install.zsh $HOST
|
||||
|
||||
function at-repos-env() {
|
||||
host=$1
|
||||
if [ -z "$1" ];then
|
||||
host=syu.is
|
||||
fi
|
||||
did=did:plc:6qyecktefllvenje24fcxnie
|
||||
icon=https://git.syui.ai/ai/at/raw/branch/main/icons/Logotype.tsx
|
||||
repos=(
|
||||
https://github.com/did-method-plc/did-method-plc
|
||||
https://github.com/bluesky-social/indigo
|
||||
https://github.com/bluesky-social/atproto
|
||||
https://github.com/bluesky-social/social-app
|
||||
https://github.com/bluesky-social/feed-generator
|
||||
)
|
||||
d=${0:a:h}
|
||||
dh=${0:a:h:h}
|
||||
name=${host%%.*}
|
||||
domain=${host##*.}
|
||||
}
|
||||
|
||||
function at-repos-json() {
|
||||
f=~/.config/atproto/token.json
|
||||
j="{ \"did\": \"did:plc:6qyecktefllvenje24fcxnie\", \"didDoc\": { \"service\": [ { \"serviceEndpoint\": \"https://syu.is\" } ] }, \"handle\": \"ai.syu.is\", \"accessJwt\": \"xxx\" }"
|
||||
if [ ! -f "$f" ];then
|
||||
mkdir -p ~/.config/atproto
|
||||
echo $j >> $f
|
||||
fi
|
||||
echo $f
|
||||
}
|
||||
|
||||
function at-repos-token() {
|
||||
at-repos-json
|
||||
if [ -z "$host" ] && [ -f $f ];then
|
||||
host=`cat $f|jq -r ".didDoc.service.[].serviceEndpoint"`
|
||||
handle=`cat $f|jq -r ".handle"`
|
||||
did=`cat $f|jq -r ".did"`
|
||||
token=`cat $f|jq -r ".token"`
|
||||
host=${host##*/}
|
||||
fi
|
||||
name=${host%%.*}
|
||||
domain=${host##*.}
|
||||
}
|
||||
|
||||
function at-repos-clone() {
|
||||
if [ ! -d $d/repos ];then
|
||||
mkdir -p $d/repos
|
||||
fi
|
||||
cd $d/repos
|
||||
for ((i=1; i<=${#repos}; i++)); do
|
||||
repo=${repos[$i]}
|
||||
echo $repo
|
||||
if [ ! -d $d/repos/${repo##*/} ];then
|
||||
git clone $repo
|
||||
fi
|
||||
done
|
||||
if [ ! -f $d/repos/feed-generator/Dockerfile ] && [ -f $d/docker/feed/Dockerfile ];then
|
||||
cp -rf $d/docker/feed/Dockerfile $d/repos/feed-generator/
|
||||
fi
|
||||
}
|
||||
|
||||
function at-repos-pull() {
|
||||
cd $d/repos
|
||||
for ((i=1; i<=${#repos}; i++)); do
|
||||
repo=${repos[$i]}
|
||||
echo $repo
|
||||
if [ -d $d/repos/${repo##*/} ];then
|
||||
cd $d/repos/${repo##*/}
|
||||
if ! git pull;then
|
||||
rm -rf $d/repos/${repo##*/}
|
||||
at-repos-clone
|
||||
fi
|
||||
fi
|
||||
done
|
||||
cd $d
|
||||
}
|
||||
|
||||
function at-repos-social-app-icon() {
|
||||
curl -sL https://raw.githubusercontent.com/bluesky-social/social-app/main/src/view/icons/Logotype.tsx -o $d/repos/social-app/src/view/icons/Logotype.tsx
|
||||
if [ -d $d/icons ];then
|
||||
mkdir -p $d/icons
|
||||
fi
|
||||
cp -rf $d/repos/social-app/src/view/icons/Logotype.tsx $d/icons/
|
||||
}
|
||||
|
||||
function at-repos-social-app-icon-origin() {
|
||||
curl -sL $icon -o $d/icons/Logotype.tsx
|
||||
}
|
||||
|
||||
function at-repos-social-app-write() {
|
||||
did_admin=did:plc:z72i7hdynmk6r22z27h6tvur
|
||||
|
||||
dt=$d/repos/social-app/src
|
||||
cd $dt
|
||||
grep -R bsky.social .|cut -d : -f 1|sort -u|xargs sed -i "s/bsky.social/${host}/g"
|
||||
grep -R bsky.app .|cut -d : -f 1|sort -u|xargs sed -i "s/bsky.app/web.${host}/g"
|
||||
f=$dt/lib/constants.ts
|
||||
sed -i "s/public.api.web/bsky/g" $f
|
||||
f=$dt/view/icons/Logotype.tsx
|
||||
o=$d/icons/Logotype.tsx
|
||||
cp -rf $o $f
|
||||
|
||||
f=$dt/view/com/util/UserAvatar.tsx
|
||||
curl -sL https://raw.githubusercontent.com/bluesky-social/social-app/refs/heads/main/src/view/com/util/UserAvatar.tsx -o $f
|
||||
sed -i "s#/img/avatar/plain/#https://cdn.bsky.app/img/avatar/plain/#g" $f
|
||||
sed -i "s#/img/avatar_thumbnail/plain/#https://bsky.${host}/img/avatar/plain/#g" $f
|
||||
sed -i "s#source={{uri: avatar}}#source={{ uri: hackModifyThumbnailPath(avatar, 1 > 0), }}#g" $f
|
||||
grep -R $did_admin .|cut -d : -f 1|sort -u|xargs sed -i "s/${did_admin}/${did}/g"
|
||||
}
|
||||
|
||||
function at-repos-bsky-patch() {
|
||||
f=$d/repos/atproto/services/bsky/api.js
|
||||
curl -sL https://raw.githubusercontent.com/bluesky-social/atproto/refs/heads/main/services/bsky/api.js -o $f
|
||||
d_=$d/repos/atproto
|
||||
p_=$d_/105-atproto-services-for-docker.diff
|
||||
cd $d_
|
||||
# https://github.com/itaru2622/bluesky-selfhost-env/blob/master/patching/105-atproto-services-for-docker.diff
|
||||
curl -sLO https://raw.githubusercontent.com/itaru2622/bluesky-selfhost-env/refs/heads/master/patching/105-atproto-services-for-docker.diff
|
||||
echo "applying patch: under ${d_} for ${p_}"
|
||||
pushd ${d_}
|
||||
patch -p1 < ${p_}
|
||||
popd
|
||||
}
|
||||
|
||||
function at-repos-docker() {
|
||||
cd $d
|
||||
sudo docker compose build && sudo docker compose up -d
|
||||
}
|
||||
|
||||
at-repos-env
|
||||
at-repos-clone
|
||||
at-repos-pull
|
||||
at-repos-social-app-icon
|
||||
at-repos-social-app-icon-origin
|
||||
at-repos-social-app-write
|
||||
at-repos-bsky-patch
|
||||
|
||||
echo "[y]docker compose build && up"
|
||||
read key
|
||||
case $key in
|
||||
[yY])
|
||||
at-repos-docker
|
||||
;;
|
||||
esac
|
Reference in New Issue
Block a user