This commit is contained in:
Bob Mottram 2018-02-09 11:49:40 +00:00
commit ca34c422a9
2 changed files with 67 additions and 15 deletions

View File

@ -47,7 +47,7 @@ PLEROMA_CODE=
PLEROMA_PORT=4000
PLEROMA_ONION_PORT=8011
PLEROMA_REPO="https://git.pleroma.social/pleroma/pleroma.git"
PLEROMA_COMMIT='c1fa1e8844c8eae1ad7638a2d7f9d00e8cd07ce8'
PLEROMA_COMMIT='2f291576e4eef95e6867348e24bc526058518095'
PLEROMA_ADMIN_PASSWORD=
PLEROMA_DIR=/etc/pleroma
PLEROMA_SECRET_KEY=""
@ -85,19 +85,42 @@ function create_pleroma_blocklist {
echo ' fi' >> $blocking_script_file
echo 'fi' >> $blocking_script_file
echo 'touch /tmp/pleroma-blocking.lock' >> $blocking_script_file
echo 'cd /etc/postgresql' >> $blocking_script_file
echo 'objects_query="DELETE FROM objects WHERE"' >> $blocking_script_file
echo 'objects_updated=' >> $blocking_script_file
echo 'users_query="DELETE FROM users WHERE"' >> $blocking_script_file
echo 'websub_server_subscriptions_query="DELETE FROM websub_server_subscriptions WHERE"' >> $blocking_script_file
echo 'websub_server_subscriptions_updated=' >> $blocking_script_file
echo 'while read blocked; do' >> $blocking_script_file
echo ' if [[ "$blocked" == *"."* || "$blocked" == *"@"* ]]; then' >> $blocking_script_file
echo ' if [ ${#blocked} -gt 4 ]; then' >> $blocking_script_file
echo " sudo -u postgres psql -d pleroma -c \"DELETE FROM objects WHERE data->>'content' ilike '%\${blocked}%' or data->>'actor' ilike '%\${blocked}%' or data->>'to' ilike '%\${blocked}%' or data->>'id' ilike '%\${blocked}%' or data->>'external_url' ilike '%\${blocked}%'\"" >> $blocking_script_file
echo " sudo -u postgres psql -d pleroma -c \"DELETE FROM users WHERE nickname ilike '%\${blocked}%'\"" >> $blocking_script_file
echo ' if [ $objects_updated ]; then' >> $blocking_script_file
echo ' objects_query="${objects_query} or"' >> $blocking_script_file
echo ' users_query="${users_query} or"' >> $blocking_script_file
echo ' fi' >> $blocking_script_file
echo " objects_query=\"\${objects_query} data->>'content' ilike '%\${blocked}%' or data->>'actor' ilike '%\${blocked}%' or data->>'to' ilike '%\${blocked}%' or data->>'id' ilike '%\${blocked}%' or data->>'external_url' ilike '%\${blocked}%'\"" >> $blocking_script_file
echo " users_query=\"\${users_query} nickname ilike '%\${blocked}%'\"" >> $blocking_script_file
echo ' objects_updated=1' >> $blocking_script_file
echo ' if [[ "$blocked" != *"@"* ]]; then' >> $blocking_script_file
echo " sudo -u postgres psql -d pleroma -c \"DELETE FROM websub_server_subscriptions WHERE callback like '%\${blocked}%'\"" >> $blocking_script_file
echo ' if [ $websub_server_subscriptions_updated ]; then' >> $blocking_script_file
echo ' websub_server_subscriptions_query="${websub_server_subscriptions_query} or"' >> $blocking_script_file
echo ' fi' >> $blocking_script_file
echo " websub_server_subscriptions_query=\"\${websub_server_subscriptions_query} callback like '%\${blocked}%'\"" >> $blocking_script_file
echo ' websub_server_subscriptions_updated=1' >> $blocking_script_file
echo ' fi' >> $blocking_script_file
echo ' fi' >> $blocking_script_file
echo ' fi' >> $blocking_script_file
echo "done </root/${PROJECT_NAME}-firewall-domains.cfg" >> $blocking_script_file
echo 'done </root/freedombone-firewall-domains.cfg' >> $blocking_script_file
echo '' >> $blocking_script_file
echo 'cd /etc/postgresql' >> $blocking_script_file
echo 'if [ $objects_updated ]; then' >> $blocking_script_file
echo ' sudo -u postgres psql -d pleroma -c "$objects_query"' >> $blocking_script_file
echo ' sudo -u postgres psql -d pleroma -c "$users_query"' >> $blocking_script_file
echo 'fi' >> $blocking_script_file
echo 'if [ $websub_server_subscriptions_updated ]; then' >> $blocking_script_file
echo ' sudo -u postgres psql -d pleroma -c "$websub_server_subscriptions_query"' >> $blocking_script_file
echo 'fi' >> $blocking_script_file
echo 'rm /tmp/pleroma-blocking.lock' >> $blocking_script_file
chmod +x $blocking_script_file
if ! grep -q "$blocking_script_file" /etc/crontab; then
@ -441,6 +464,7 @@ function pleroma_set_background_image {
write_config_param "PLEROMA_BACKGROUND_IMAGE_URL" "$PLEROMA_BACKGROUND_IMAGE_URL"
if [[ $(pleroma_set_background_image_from_url $PLEROMA_DIR "$PLEROMA_DOMAIN_NAME" "$PLEROMA_BACKGROUND_IMAGE_URL" "$PLEROMA_TITLE" | tail -n 1) == "0" ]]; then
pleroma_recompile
dialog --title $"Set Pleroma login background" \
--msgbox $"The background image has been set" 6 60
fi
@ -521,11 +545,11 @@ function pleroma_disable_registrations {
--yesno $"\nDo you wish to disable new registrations?" 10 60
sel=$?
case $sel in
0) sed -i 's|registrations_open:.*|registrations_open: false|g' $PLEROMA_DIR/config/config.exs
sed -i 's|"registrationOpen":.*|"registrationOpen": false|g' $PLEROMA_DIR/priv/static/static/config.json
0) sed -i 's|registrations_open:.*|registrations_open: false,|g' $PLEROMA_DIR/config/config.exs
sed -i 's|"registrationOpen":.*|"registrationOpen": false,|g' $PLEROMA_DIR/priv/static/static/config.json
;;
1) sed -i 's|registrations_open:.*|registrations_open: true|g' $PLEROMA_DIR/config/config.exs
sed -i 's|"registrationOpen":.*|"registrationOpen": true|g' $PLEROMA_DIR/priv/static/static/config.json
1) sed -i 's|registrations_open:.*|registrations_open: true,|g' $PLEROMA_DIR/config/config.exs
sed -i 's|"registrationOpen":.*|"registrationOpen": true,|g' $PLEROMA_DIR/priv/static/static/config.json
;;
255) return;;
esac
@ -677,15 +701,38 @@ function upgrade_pleroma {
return
fi
# make a copy of the configuration
cp $PLEROMA_DIR/priv/static/static/config.json $PLEROMA_DIR/priv/static/static/config_prev.json
if [ -f $PLEROMA_DIR/config/emoji.txt ]; then
cp $PLEROMA_DIR/config/emoji.txt $PLEROMA_DIR/config/emoji_prev.txt
fi
apt-get -yq update
apt-get -yq install --only-upgrade esl-erlang
apt-get -yq install --only-upgrade elixir erlang-xmerl erlang-dev erlang-parsetools
function_check set_repo_commit
set_repo_commit $PLEROMA_DIR "pleroma commit" "$PLEROMA_COMMIT" $PLEROMA_REPO
chown -R pleroma:pleroma $PLEROMA_DIR
# restore the configuration
cp $PLEROMA_DIR/priv/static/static/config_prev.json $PLEROMA_DIR/priv/static/static/config.json
chown pleroma:pleroma $PLEROMA_DIR/priv/static/static/config.json
if [ -f $PLEROMA_DIR/config/emoji_prev.txt ]; then
cp $PLEROMA_DIR/config/emoji_prev.txt $PLEROMA_DIR/config/emoji.txt
chown pleroma:pleroma $PLEROMA_DIR/config/emoji.txt
rm cp $PLEROMA_DIR/config/emoji_prev.txt
fi
sudo -u pleroma mix deps.get
pleroma_recompile
expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
create_pleroma_blocklist
systemctl restart pleroma
}
function backup_local_pleroma {
@ -735,6 +782,7 @@ function restore_local_pleroma {
chown -R pleroma:pleroma $pleroma_dir
rm -rf $temp_restore_dir
fi
systemctl restart pleroma
echo $"Restore of pleroma complete"
fi
@ -789,7 +837,7 @@ function restore_remote_pleroma {
rm -rf $temp_restore_dir
fi
pleroma_update_after_restore pleroma ${PLEROMA_DOMAIN_NAME}
systemctl restart pleroma
echo $"Restore of pleroma complete"
fi

View File

@ -276,10 +276,12 @@ function install_gnusocial_default_background {
# customise the logo
if [ -f $basedir/static/logo.png ]; then
if [ -f ~/freedombone/img/logo_fbone3.png ]; then
cp ~/freedombone/img/logo_fbone3.png $basedir/static/logo.png
cp ~/freedombone/img/logo_fbone3.png $basedir/static/logo_custom.png
sed -i "s|\"logo\":.*|\"logo\": \"/static/logo_custom.png\",|g" $basedir/static/config.json
else
if [ -f /home/$MY_USERNAME/freedombone/img/logo_fbone3.png ]; then
cp /home/$MY_USERNAME/freedombone/img/logo_fbone3.png $basedir/static/logo.png
cp /home/$MY_USERNAME/freedombone/img/logo_fbone3.png $basedir/static/logo_custom.png
sed -i "s|\"logo\":.*|\"logo\": \"/static/logo_custom.png\",|g" $basedir/static/config.json
fi
fi
fi
@ -289,10 +291,12 @@ function install_gnusocial_default_background {
fi
if [ -f ~/freedombone/img/backgrounds/${gnusocial_type}.jpg ]; then
cp ~/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg.jpg
cp ~/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg_custom.jpg
sed -i "s|\"background\":.*|\"background\": \"/static/bg_custom.jpg\",|g" $basedir/static/config.json
else
if [ -f /home/$MY_USERNAME/freedombone/img/backgrounds/${gnusocial_type}.jpg ]; then
cp /home/$MY_USERNAME/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg.jpg
cp /home/$MY_USERNAME/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg_custom.jpg
sed -i "s|\"background\":.*|\"background\": \"/static/bg_custom.jpg\",|g" $basedir/static/config.json
fi
fi
}