FSpot::DbTool

Introducing FSpot::DbTool!

F-Spot is a pretty neat photo management application which comes with the Gnome desktop.  I have been using it for a few years to manage my photos, and by now I have over 23,000 photos in it!  It has lots of handy features: tagging, versions, dates… but there are a few things it doesn’t do so well: moving files from one location to another (not all your files, just a sub-section), compacting the database, and I’m sure some more will come to mind!  The database it uses is SQLite – the perfect application for this kind of database!

I’m getting into Moose (a post-modern object system for Perl 5), so this weekend I put together a neat interface to the FSpot database: FSpot::DbTool.  It comes with a command line tool fspot-tool.

Usage:
 fspot-tool.pl [options]

Options:
 --action
    move_dir
      Requires: from, to Optional: merge, rename
    replace_path
      Requires: from, to
    find_lost
      Requires: path find_orphans
    clean_trailing_slashes
    tag_no_description
    backup_db
    check_db
    compact_db

 --from   Path from
 --to     Path to
 --path   It's a path!
 --merge  Do a merge
 --rename Rename files if necessary

Actions:
 move_dir:
 Move pictures from one directory to another. Does the move on the
 filesystem, and the corresponding move of the path in the FSpot database
 afterwards

 replace_path:
 Useful if you have already moved files in your filesystem (e.g. moved
 your entire photo folder to a new location. Will replace all instances
 of a path with a new path

 e.g.

 from = /home/clarkero/my_pictures
 to   = /home/rcl/pictures/processed

 clean_trailing_slashes:
 Clean trailing slashes off the end of paths in the database

 find_lost:
 Find files which exist in the filesystem, but do not exist in the
 database

 find_orphans:
 Find orphaned files (files which exist in in the database, but not on
 the filesystem)

 tag_no_description:
 Tag all photos which do not yet have a description

 check_db:
 Confirms you have the correct database version for this script to work
 with

 backup_db:
 Make a backup of the database This is carried out automatically for
 move_dir, replace_path and compact_db actions.

 compact_db:
 Carries out the SQLite compact function (VACUUM) on the database.

By using Moose::Roles I’ve paved the way for easily adding additional tools for the database – just add them into the lib/FSpot/DbTools directory!

I hope you have fun with FSpot, and find a use for the DbTool.


You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

One Response to “FSpot::DbTool”

  1. FSpot::DbTool now available on CPAN:
    http://search.cpan.org/perldoc?FSpot