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