Provided by: digikam_3.5.0-0ubuntu10_amd64 bug

NAME

       digitaglinktree - Export tag structure of photos in digikam to the filesystem.

SYNOPSIS

       digitaglinktree

       -l taglinkdir | -A archivedir

       -d database

       [-r rootdir]

       [-H|-f|-a|-v|-C]

DESCRIPTION

       digitaglinktree  will  create a linktree for all photos in a digikam database that have tags set on them.
       Tags (like eg. "family", "events", ...)  are used in digikam to create virtual folders containing  images
       that  all  have  one  or  more  tags assigned.  Please note: Photos that have no tags at all assigned are
       silently ignored by this script. The program will not modify or even touch your original  photos  managed
       by digikam.

       The  script  can  be used in two ways: If you call it using Option  -l taglinkdir  the script will create
       the user specified directory  taglinkdir and inside this directory it will  create  sub  directories  for
       digikam  tags   set  on  the  photos. Inside these subdirectories it will finally  place symbolic or hard
       links  (see -H) to photos having the tags in question.  As a result you will see the tags of your  photos
       as folders and in these folders you will find links to your original photos.

       In this way you can access the collection of all images that share a certain tag by changing directory to
       the  folder  with the tags name created by this script.  This allows you e.g. to run JAlbum a photo album
       software that needs to find the pictures to be put into a web album  in  the  filesystem  because  JAlbum
       cannot access digikams virtual folders directly.

       The second way of calling this script is the so called archive-mode by setting option  -A archiveDir.

       Archive  mode  is  thought  for  people  who want to archive tagged photos independently of digikams root
       directories and the photos therein.  This way you can put your photos and their tag structure  in  eg.  a
       tar  archive  and  send it  to a friend, who can look at the photos via their tag structure. In this mode
       the script creates the directory given as  parameter to -A and in this directory two more subdirectories.
       One named Photos and a second named Tags.  The Photos directory contains  hard  links  to  your  original
       photos,  and  the  Tags directory contains a subdirectory for each Tag used by any of your photos. Inside
       this subdirectory there are links (either symbolic or hard links) to the files in the  Photos  directory.
       This way the archive  directory needs nearly no additional space on your harddisk and you have an archive
       that  allows you or a friend to easily look at the photos tag structure.

       Another  benefit from using this script is that you have kind of a backup of your tag settings for all of
       your photos. The backup is simply the directory structure containing links to the  original  images  that
       wear  the tags.  This could become important if for whatever reason the digikam.db file gets corrupted or
       even lost.

COMMAND-LINE OPTIONS

        -l taglinkdir
              Parameter  taglinkdir denotes a directory in which the tag structure of all your photos stored  in
              rootdir  will be exported to by creating subdirectories for each tag and placing symbolic links in
              these subdirectories that point to the original photo wearing the tags. If calling the script with
              option  -l taglinkDir you also have to  specify options -r  rootdir as well as -d database.

        -A archivedirectory
              archivedirectory denotes a directory into which the script will export the photos  and  their  tag
              structure. -A has to be used together with option  -r  rootdir if using digikam version < 0.10, as
              well as -d database else the script will terminate.  Inside the archive  directory the script will
              create  a Photos and a Tags directory. It will put hard links in the  Photos directory  that point
              to your original photos. By using hard links you are independent  of changes in your digikam  root
              directory  but  on the other hand you are limited to one filesystem.  So the directory given by -r
              rootdir and the directory specified for -A archivedir have to be   one  the  same  filesystem.  If
              using  digikam  in  version  >= 0.10 you cannot specify -r rootdir . Instead the root paths of all
              albums are taken from digikams database  directly.  However  still  the  requirement  holds,  that
              archivedir  has  to  be on the same filesystem like all the root directories containing photos you
              defined in digikam.  If one of digikams root directories is on another filesystem  this  one  will
              not  be processed, since hardlinking the photos inside the Photos directory would not work in this
              case!  The Tags subdirectory will contain links to the files in the Photos directory. This way you
              have one archive directory that is completely self contained. You can tar it, send it to a  friend
              or   just  put  it  somewhere  for  archivel or backup purposes. Usually only those photos will be
              archived that have a digikam tag set on them. By  using  option  -C  however  you  can  perform  a
              complete archive. See -C for more infos.

        -d database
              database  is the complete path including the filename to digikams photo database which usually can
              be found in digikams root directory. The files name  is usually digikam.db .

        -r rootdir
              rootdir denotes the digikam base directory containing all your photos if you are using digikam  in
              a version before 0.10. If you are using digikam 0.10 or newer you must not use this option. If you
              do  it  anyway  you will see a hint that the option given will be ignored because digikams version
              0.10 database contains the root directories of all albums defined in digikam.

        -C    When the script is called with option -A archivedir only those photos will be archived (by placing
              links) in the Photos subdirectory of archivedir that have at least one digikam tag set. By setting
              option -C all photos will be  archived to  archivedir no matter if they have a  tag  set  or  not.
              Note:  This  only changes the contents of the Photos  subdirectory not of the Tags subdirectory in
              the archivedir directory.

        -a    By default the script will try to create relative symbolic links from  the  directory   taglinkdir
              set  by  option  -l  to  the  photo files under rootdir given by option -r. Using this option will
              result in  absolute symbolic links beeing created instead of relative ones.

        -H    By default the script will create soft (symbolic) links  from  the  Tag-Tree  to  the  photos.  By
              setting  option -H the script will use hard links instead. Please note that hard links can only be
              created inside one filesystem. So your photos and the Tag tree have to be one the same filesystem.
              If not you will see a warning about this problem and the script will not run.

        -f    In digikam photos can have hierachical tags (tags that have subtags). In this case digitaglinktree
              would by default add a directory for the tag and a subdirectory for each of the  subtags  of  this
              tag.  By  setting   -f   a  subtag  is  treated  like  a  regular  tag  just  as its parent tag so
              digitaglinktree will create all subdirectories for tags and subtags at the same level  independent
              of the tag - subtag hierarchy.

        -v    Prints the scripts version number and exits.

CONFIGURATION

       By default this script will run with all photo databases created by digikam version 0.10 as well as older
       version  like  0.9 and 0.8. If you still have digikam version 0.7 then you have to reconfigure the script
       itself.

       You have to reconfigure the script by setting the path to the sqlite binary that is used by the script to
       query the digikam database digikam.db. Since very old digikam version use sqlite in version 2, but  later
       digikam versions need sqlite version 3 you have to take care to install the correct version of sqlite for
       the installed digikam version and to set the path to the correct sqlite executable in the scripts head:

       Choose

       $SQLITE="/usr/bin/sqlite3";

       for digikam version 0.8x and 0.9x and 0.10x

       $SQLITE="/usr/bin/sqlite";

       for digikam version 0.7x.

EXAMPLE

       A call to digitaglinktree is shown below:

       digiTagLinktree  -l /home/user/tags             -d /home/user/photos/digikam.db

       In  this  example  we assume that you are running digikam version 0.10 or higher so that no option -r was
       used to specify the photo root dir. Instead this information will automatically be fetched from  digikams
       database.

       In  case  you  want  to  run  the script on a digikam database that was created by digikam version 0.9 or
       earlier you have to use -r to specify the root directory where you keep all your photos that are  managed
       by digikam:

       digiTagLinktree -r /home/user/photos -l /home/user/tags             -d /home/user/photos/digikam.db

       In this example digikams photo root denoted by -r is /home/user/photos.

       Option  -l /home/user/tags tells the script that all the subdirectories and symbolic links will be placed
       in the directory /home/user/tags. The folder was chosen so that the tags-directory is not under  digikams
       photo  root.  You may put the tags folder inside digikams photoroot but this is not the preferred method.
       Because the link directory contains only links this tag structure does hardly need any  additional  space
       on your harddisk.

AUTHORS

       digitaglinktree was written by Rainer Krienke <krienke at uni-koblenz.de>

                                                  16 Aug 2006                                 digitaglinktree(1)