[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-orgmode] Creating CD contents listings in org mode

From: Carsten Dominik
Subject: Re: [Emacs-orgmode] Creating CD contents listings in org mode
Date: Tue, 23 May 2006 10:45:19 +0200

I like these perl programs popping up! This is why org-mode files are plain text - to allow to create the easily with external programs, and to extract information in arbitrary ways.

Charles, at some point in the past you were planning to write a tutorial on how to use Org-mode for GTD. Is that still your plan? I'd love to see it.

- Carsten

On May 22, 2006, at 14:31, Charles Cave wrote:

I used to use Treepad on Windows  (www.treepad.com) and wrote a Perl
module to read and write Treepad Files. These were plain text but had
extra information to define each node in the tree.

Now I use ORG mode for my outlining requirements.

Today I adapted a program to create a listing of the contents
of a CD-ROM. The program is written in Perl (not Lisp!).

I use Windows, and my CD-ROM drive is F:
I write a unique number on each CD, for example, C039

To catalogue the disk, I run the command
perl cdcat.pl C039.org F:

Now I can view the file C039.org with Emacs and expand/collapse the
directory names.

Sample output:

*  f:
** Australian Piano Concertos
f:/Australian Piano Concertos
  01 Piano Concert Movt 1 - Ross Edwards.mp3 (6884786)
  02 Piano Concerto Movt 2 - Ross Edwards.mp3 (10772642)
  03 Piano Concerto Movt 3 - Ross Edwards.mp3 (4604168)
  07 Piano Concerto - Peter Sculthorpe.mp3 (26613776)
  Australian Piano Concertos playlist.m3u (746)
** Sun Music
f:/Sun Music
  01 Memento Mori - Peter Sculthorpe.mp3 (20459686)
  02 Sun Song - Peter Sculthorpe.mp3 (8521866)
  03 Sun Music 1 - Peter Sculthorpe.mp3 (14595318)
  04 Sun Music 2 - Peter Sculthorpe.mp3 (8466152)
  05 Sun Music 3 - Peter Sculthorpe.mp3 (17877436)
  06 Sun Music 4 - Peter Sculthorpe.mp3 (12673498)
  07 From Uluru - Peter Sculthorpe.mp3 (5337404)
  Sun Music playlist.m3u (584)

# Save the remained of the message as a file  cdcat.pl

# cdcat.pl    Modified on 29th April 2005

use strict;
use warnings;

#  parse a directory structure to create an Emacs org mode file
#  with a list of files against each node.

my $outfile = shift;
my $root    = shift;   # start directory for searching, a CD drive:  G:
my $info    = "";      # the catalogue data being prepared

defined($outfile) or $outfile = "cd.org";
defined($root)    or die "Syntax is cdcat cdlabel CDdrive\n";

open (my $fv, ">", $outfile) or die "Cannot create $outfile\n";
my $level = 0;
parse_dir($root, $level, $root);

print $fv $info;

print "Analysis of $root written to $outfile\n";

sub parse_dir {
    my $dir      = shift;
    my $level    = shift;
    my $fullpath = shift;

    my @dirlist = ();
    my $filelist = "";

    chdir($fullpath)        or die "chdir to $fullpath failed\n";
    opendir(my $dirfv, ".") or die "Cannot open . in $dir\n";
    while (my $file = readdir($dirfv)) {
        if ( -f $file ) {
            my $size = -s $file;
            $filelist .= "  $file ($size)\n";
        next if ($file eq ".");
        next if ($file eq "..");
        push (@dirlist, $file) if -d $file;

    $info .= '*' x ( $level + 1 );
    $info .= " $dir\n$fullpath\n$filelist";

    foreach my $subdir (@dirlist) {
       parse_dir($subdir, $level + 1,  $fullpath."/".$subdir);

Emacs-orgmode mailing list

Carsten Dominik
Sterrenkundig Instituut "Anton Pannekoek"
Universiteit van Amsterdam
Kruislaan 403
NL-1098SJ Amsterdam
phone: +31 20 525 7477

reply via email to

[Prev in Thread] Current Thread [Next in Thread]