|
@@ -141,8 +141,45 @@ function expire_pleroma_posts {
|
141
|
141
|
pleroma_expire_script=/etc/cron.daily/pleroma-expire
|
142
|
142
|
echo '#!/bin/bash' > $pleroma_expire_script
|
143
|
143
|
echo 'cd /etc/postgresql' >> $pleroma_expire_script
|
|
144
|
+ echo 'if [ -d /etc/pleroma/tempfiles ]; then' >> $pleroma_expire_script
|
|
145
|
+ echo ' rm -rf /etc/pleroma/tempfiles' >> $pleroma_expire_script
|
|
146
|
+ echo 'fi' >> $pleroma_expire_script
|
|
147
|
+ echo '' >> $pleroma_expire_script
|
|
148
|
+ echo '# make directory to temporarily store local avatars' >> $pleroma_expire_script
|
|
149
|
+ echo 'mkdir /etc/pleroma/tempfiles' >> $pleroma_expire_script
|
|
150
|
+ echo '' >> $pleroma_expire_script
|
|
151
|
+ echo '# get the local avatar files' >> $pleroma_expire_script
|
|
152
|
+ echo "avatars=\$(sudo -u postgres psql -d pleroma -c \"select avatar->>'url' from users where avatar->>'url' like '%${domain_name}%'\")" >> $pleroma_expire_script
|
|
153
|
+ echo '' >> $pleroma_expire_script
|
|
154
|
+ echo '# copy the avatar files to a temporary directory' >> $pleroma_expire_script
|
|
155
|
+ echo 'arr=( $avatars )' >> $pleroma_expire_script
|
|
156
|
+ echo 'for i in "${arr[@]}"; do' >> $pleroma_expire_script
|
|
157
|
+ echo ' if [[ "$i" == *'/media/'* ]]; then' >> $pleroma_expire_script
|
|
158
|
+ echo " imagefile=/etc/pleroma/uploads/\$(echo \$i | sed 's|\"||g' | sed 's|,||g' | awk -F '/media/' '{print \$2}');" >> $pleroma_expire_script
|
|
159
|
+ echo ' if [ -f $imagefile ]; then' >> $pleroma_expire_script
|
|
160
|
+ echo " imagedir=/etc/pleroma/uploads/\$(echo \$i | sed 's|\"||g' | sed 's|,||g' | awk -F '/media/' '{print \$2}' | awk -F '/' '{print \$1}')" >> $pleroma_expire_script
|
|
161
|
+ echo ' nowdate=$(date +%s)' >> $pleroma_expire_script
|
|
162
|
+ echo ' sinceepoch=$(date +%s -r $imagefile)' >> $pleroma_expire_script
|
|
163
|
+ echo ' daysold=$((($nowdate - $sinceepoch) / 86400))' >> $pleroma_expire_script
|
|
164
|
+ echo " if [ \$daysold -ge ${expire_days_files} ]; then" >> $pleroma_expire_script
|
|
165
|
+ echo ' if [ ! -d /etc/pleroma/tempfiles/$imagedir ]; then' >> $pleroma_expire_script
|
|
166
|
+ echo ' mkdir /etc/pleroma/tempfiles/$imagedir' >> $pleroma_expire_script
|
|
167
|
+ echo ' fi' >> $pleroma_expire_script
|
|
168
|
+ echo ' cp -rp $imagefile /etc/pleroma/tempfiles/$imagedir' >> $pleroma_expire_script
|
|
169
|
+ echo ' fi' >> $pleroma_expire_script
|
|
170
|
+ echo ' fi' >> $pleroma_expire_script
|
|
171
|
+ echo ' fi' >> $pleroma_expire_script
|
|
172
|
+ echo 'done' >> $pleroma_expire_script
|
|
173
|
+ echo '' >> $pleroma_expire_script
|
|
174
|
+ echo '# delete old files' >> $pleroma_expire_script
|
144
|
175
|
echo "find /etc/pleroma/uploads/* -mtime +${expire_days_files} -exec rm -rf {} +" >> $pleroma_expire_script
|
145
|
|
- echo "$pleroma_expire_posts_script 2> /dev/null" >> $pleroma_expire_script
|
|
176
|
+ echo '' >> $pleroma_expire_script
|
|
177
|
+ echo '# copy avatar files back to uploads' >> $pleroma_expire_script
|
|
178
|
+ echo 'chown -R pleroma:pleroma /etc/pleroma/tempfiles' >> $pleroma_expire_script
|
|
179
|
+ echo 'cp -rp /etc/pleroma/tempfiles/* /etc/pleroma/uploads' >> $pleroma_expire_script
|
|
180
|
+ echo 'rm -rf /etc/pleroma/tempfiles' >> $pleroma_expire_script
|
|
181
|
+ echo '' >> $pleroma_expire_script
|
|
182
|
+ echo '/usr/bin/pleroma-expire-posts 2> /dev/null' >> $pleroma_expire_script
|
146
|
183
|
chmod +x $pleroma_expire_script
|
147
|
184
|
|
148
|
185
|
# remove any old cron job
|