users_dump.sh 966 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/bin/sh
  2. cd /home/librefm/wip || exit 1
  3. if [ -x /usr/bin/lockfile-create ]; then
  4. lockfile-create /var/lock/gnukebox-userdump.lock
  5. lockfile-touch /var/lock/gnukebox-userdump.lock &
  6. LOCKER="$!"
  7. else
  8. echo >&2 "Running without locking."
  9. fi
  10. #we rely on lack of whitespace here
  11. LIST=$(echo "SELECT DISTINCT username FROM Users where public_export = 1;" | psql -q -t)
  12. for I in $LIST; do
  13. cat /home/librefm/scripts/license > $I.text.utf8
  14. echo 'COPY (SELECT * FROM Scrobbles where username='"'$I'"') TO STDOUT WITH CSV HEADER;' | psql -q >> $I.text.utf8
  15. mv -- $I.text.utf8 /home/librefm/turtle/data/users/
  16. done
  17. echo 'COPY (SELECT Artist,Track,Album from Scrobbles) TO STDOUT WITH CSV HEADER;' | psql -q >> 'anonymous'
  18. bzip2 -q -z --best anonymous anonymous.bz2
  19. rm anonymous
  20. mv anonymous.bz2 /home/librefm/turtle/data/
  21. if [ -x /usr/bin/lockfile-create ]; then
  22. kill "${LOCKER}"
  23. lockfile-remove /var/lock/gnukebox-userdump.lock
  24. fi