r5068 - trunk/gta02-core/scripts
werner at docs.openmoko.org
werner at docs.openmoko.org
Thu May 28 01:06:20 CEST 2009
Author: werner
Date: 2009-05-28 01:06:20 +0200 (Thu, 28 May 2009)
New Revision: 5068
Added:
trunk/gta02-core/scripts/Makefile
trunk/gta02-core/scripts/mkdsv
Log:
New script to maintain a cache of data sheets.
For quick access, the script creates executables that invoke xpdf on the
respective file.
Added: trunk/gta02-core/scripts/Makefile
===================================================================
--- trunk/gta02-core/scripts/Makefile (rev 0)
+++ trunk/gta02-core/scripts/Makefile 2009-05-27 23:06:20 UTC (rev 5068)
@@ -0,0 +1,8 @@
+.PHONY: all dsv
+
+all:
+ @echo "make what ?" 1>&2
+ @exit 1
+
+dsv:
+ ../scripts/mkdsv ../components/INFO
Added: trunk/gta02-core/scripts/mkdsv
===================================================================
--- trunk/gta02-core/scripts/mkdsv (rev 0)
+++ trunk/gta02-core/scripts/mkdsv 2009-05-27 23:06:20 UTC (rev 5068)
@@ -0,0 +1,82 @@
+#!/usr/bin/perl
+#
+# Add $DSV_HOME/bin to your PATH.
+#
+
+$DSV_HOME = $ENV{"DSV_HOME"};
+$DSV_HOME = "/home/moko/dsv" unless defined $DSV_HOME;
+
+
+sub mkdir
+{
+ mkdir($_[0]) && return;
+ return if $!{EEXIST};
+ die "$_[0]: $!";
+}
+
+
+sub mkbin
+{
+ local ($pgm, $file) = @_;
+
+ open(F, ">$pgm") || die "$pgm: $!";
+ print F "#!/bin/sh\n# MACHINE-GENERATED. DO NOT EDIT !\nxpdf \"$file\"\n"
+ || die "$pgm: $!";
+ close(F) || die "$pgm: $!";
+ chmod(0777 & ~umask, $pgm) || die "chmod $pgm: $!";
+}
+
+
+sub dl
+{
+ $bin_dir = "$DSV_HOME/bin";
+ $ds_dir = "$DSV_HOME/ds/$part";
+ $url =~ /[^\/?&]*$/;
+ $name = $&;
+ if (-r "$ds_dir/$name" && -x "$bin_dir/dsv-$part") {
+ return unless defined $alias;
+ return if -x "$bin_dir/dsv-$alias";
+ }
+ &mkdir($ds_dir);
+
+ local ($p) = "$ds_dir/$name";
+ if (system("wget -nv -O \"$p-tmp\" \"$url\"")) {
+ print STDERR "FAILED: $part -> $url\n";
+ } else {
+ rename("$p-tmp", $p) || die "rename: $!\n";
+ }
+ &mkbin("$bin_dir/dsv-$part", $p);
+ &mkbin("$bin_dir/dsv-$alias", $p) if defined $alias;
+}
+
+
+sub flush
+{
+ &dl if defined($part) && defined($url);
+ undef $part;
+ undef $alias;
+ undef $url;
+}
+
+
+&mkdir("$DSV_HOME");
+&mkdir("$DSV_HOME/ds");
+&mkdir("$DSV_HOME/bin");
+
+while (<>) {
+ s/#.*//;
+ next if /^\s*$/;
+ if (/^P:\s+(\S+)\s*$/) {
+ &flush if defined $part;
+ $part = $1;
+ } elsif (/^A:\s+(\S+)\s*$/) {
+ $alias = $1;
+ } elsif (/^D:\s+(.*?)\s*$/) {
+ $url = $1;
+ } elsif (/^M:\s+(.*?)\s*$/) {
+ # ignore
+ } else {
+ die "bad syntax: \"$_\"";
+ }
+}
+&flush if defined $part;
Property changes on: trunk/gta02-core/scripts/mkdsv
___________________________________________________________________
Name: svn:executable
+ *
More information about the commitlog
mailing list