Various fixes for windows: Remove dependency checking for windows builds as it would be a miracle if automatic installation succeeded. Provide a default termwidth for the CLI on windows.

Initial import of Perl script to edit PDF metadata
This commit is contained in:
Kovid Goyal 2007-01-08 21:54:04 +00:00
parent eb07f9c91f
commit 3f4f7e7b0b
5 changed files with 90 additions and 7 deletions

View File

@ -25,8 +25,12 @@ try:
try: try:
import Image import Image
except ImportError: except ImportError:
print "Trying to install the Python Imaging Library" if sys.platform not in ['win32', 'darwin']:
easy_install(["-f", "http://www.pythonware.com/products/pil/", "Imaging"]) print "Trying to install the Python Imaging Library"
easy_install(["-f", "http://www.pythonware.com/products/pil/", "Imaging"])
else:
raise Exception('Please install the Python Imaging library manually from '\
'http://www.pythonware.com/products/pil/')
except Exception, e: except Exception, e:
print >> sys.stderr, e print >> sys.stderr, e
print >> sys.stderr, \ print >> sys.stderr, \
@ -44,6 +48,10 @@ if sys.hexversion < 0x2050000:
sys.exit(1) sys.exit(1)
install_requires=[]
if sys.platform not in ['win32', 'darwin']:
install_requires = ["pyusb>=0.3.5", "pyxml>=0.8.4"]
setup( setup(
name='libprs500', name='libprs500',
packages = find_packages('src'), packages = find_packages('src'),
@ -54,7 +62,8 @@ setup(
url = 'http://libprs500.kovidgoyal.net', url = 'http://libprs500.kovidgoyal.net',
package_data = { \ package_data = { \
'libprs500.gui' : ['*.ui'], \ 'libprs500.gui' : ['*.ui'], \
'libprs500.lrf' : ['*.jar', '*.jpg'] \ 'libprs500.lrf' : ['*.jar', '*.jpg'], \
'libprs500.metadata' : ['*.pl'] \
}, },
entry_points = { entry_points = {
'console_scripts': [ \ 'console_scripts': [ \
@ -65,9 +74,9 @@ setup(
'gui_scripts' : [ 'prs500-gui = libprs500.gui.main:main'] 'gui_scripts' : [ 'prs500-gui = libprs500.gui.main:main']
}, },
zip_safe = True, zip_safe = True,
install_requires=["pyusb>=0.3.5", "pyxml>=0.8.4"], install_requires = install_requires,
dependency_links=["http://sourceforge.net/project/showfiles.php?group_id=6473", dependency_links = ["http://sourceforge.net/project/showfiles.php?group_id=6473",
"http://easynews.dl.sourceforge.net/sourceforge/pyusb/pyusb-0.3.5.tar.gz", "http://easynews.dl.sourceforge.net/sourceforge/pyusb/pyusb-0.3.5.tar.gz",
], ],
description = description =
""" """

View File

@ -37,6 +37,6 @@ the following rule in C{/etc/udev/rules.d/90-local.rules} ::
You may have to adjust the GROUP and the location of the rules file to You may have to adjust the GROUP and the location of the rules file to
suit your distribution. suit your distribution.
""" """
__version__ = "0.3.0b3" __version__ = "0.3.0b4"
__docformat__ = "epytext" __docformat__ = "epytext"
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>" __author__ = "Kovid Goyal <kovid@kovidgoyal.net>"

View File

@ -177,6 +177,8 @@ def ls(dev, path, term, recurse=False, color=False, human_readable_size=False, l
def main(): def main():
term = TerminalController() term = TerminalController()
cols = term.COLS cols = term.COLS
if not cols: # On windows terminal width is unknown
cols = 80
parser = OptionParser(usage="usage: %prog [options] command args\n\ncommand is one of: info, books, df, ls, cp, mkdir, touch, cat, rm\n\n"+ parser = OptionParser(usage="usage: %prog [options] command args\n\ncommand is one of: info, books, df, ls, cp, mkdir, touch, cat, rm\n\n"+
"For help on a particular command: %prog command", version="libprs500 version: " + VERSION) "For help on a particular command: %prog command", version="libprs500 version: " + VERSION)
@ -302,3 +304,6 @@ def main():
print >>sys.stderr, e print >>sys.stderr, e
return 1 return 1
return 0 return 0
if __name__ == '__main__':
main()

View File

@ -0,0 +1,20 @@
## Copyright (C) 2006 Kovid Goyal kovid@kovidgoyal.net
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program; if not, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
Provides metadata editing support for PDF and RTF files. For LRF metadata, use
the L{libprs500.lrf.meta} module.
"""
__docformat__ = "epytext"
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>"

View File

@ -0,0 +1,49 @@
#!/usr/bin/perl
# Read/Write PDF meta data
# Based on pdf-meta from http://www.osresearch.net/wiki/index.php/Pdf-meta
use warnings;
use strict;
use PDF::API2;
use Getopt::Long;
use Data::Dumper;
my %new_info = (Creator => 'libprs500.metadata', CreationDate => scalar( localtime ),);
GetOptions(
"c|creator=s" => \$new_info{Creator},
"d|date=s" => \$new_info{CreationDate},
"p|producer=s" => \$new_info{Producer},
"a|author=s" => \$new_info{Author},
"s|subject=s" => \$new_info{Subject},
"k|keywords=s" => \$new_info{Keywords},
"t|title=s" => \$new_info{Title},
) or die "Usage: (no help yet!)\n";
for my $file (@ARGV)
{
my $pdf = PDF::API2->open( $file )
or warn "Unable to open $file: $!\n"
and next;
my %info = $pdf->info;
for my $key (keys %info)
{
print $key.' = """'.$info{$key}.'"""'."\n";
}
print "\n";
for my $key (keys %new_info)
{
my $new_value = $new_info{$key};
next unless defined $new_value;
$info{$key} = $new_value;
}
$pdf->info( %info );
$pdf->saveas( $file );
}