OSDN Git Service

new file: bin/upd-kdoc-list-2.x.pl
authorMasanori Kobayasi <yasikoba@users.sourceforge.jp>
Thu, 1 Dec 2011 09:08:19 +0000 (18:08 +0900)
committerMasanori Kobayasi <yasikoba@users.sourceforge.jp>
Thu, 1 Dec 2011 09:08:19 +0000 (18:08 +0900)
bin/upd-kdoc-list-2.x.pl [new file with mode: 0755]

diff --git a/bin/upd-kdoc-list-2.x.pl b/bin/upd-kdoc-list-2.x.pl
new file mode 100755 (executable)
index 0000000..dbb6dfe
--- /dev/null
@@ -0,0 +1,75 @@
+#!/usr/bin/perl
+#
+# Kernel Docs ¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¥ê¥¹¥È¤ò,
+# ¥«¡¼¥Í¥ë¥Ñ¥Ã¥Á¤ò»È¤Ã¤Æ¹¹¿·¤¹¤ë¥¹¥¯¥ê¥×¥È
+#
+# ¥Ð¥°: Ê¸½ñ¤¬¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ï̤Âбþ(^^;
+#
+# [»È¤¤Êý]
+#
+# ¤Ò¤È¤Ä¤á¤Î°ú¿ô: Kernel Docs ¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¥ê¥¹¥È
+# ¤Õ¤¿¤Ä¤á¤Î°ú¿ô: bzip2 ¤Ê¥«¡¼¥Í¥ë¥Ñ¥Ã¥Á¥Õ¥¡¥¤¥ë
+#
+# [»ÈÍÑÎã]
+#
+# $ ./upd-kdoc-list.pl ../lists/kdoc-2.6-version.list \
+# ~/src/patch-2.6.2.bz2 >../lists/kdoc-2.6-version.list.new
+# $ cd ../lists
+# $ mv kdoc-2.6-version.list.new kdoc-2.6-version.list
+#
+
+use File::Basename;
+
+if (@ARGV < 2) {die "$0 oldlist kernel-patch\n"};
+
+$OLDLIST = $ARGV[0];
+$K_PATCH = $ARGV[1];
+
+$NEWKVER = basename($ARGV[1], '.bz2');
+$NEWKVER =~ s/^patch-//;
+
+unless (-f $OLDLIST) {die "$OLDLIST does not exist.\n"};
+unless (-f $K_PATCH) {die "$K_PATCH does not exist.\n"};
+
+unless ($NEWKVER =~ /^[23]\.([0246])\.([1-9][0-9]?)/) {
+    die "illegal version number.\n";
+}
+$NEWPATCHLEVEL = $1;
+$NEWSUBLEVEL   = $2;
+
+open OL, $OLDLIST;
+while (<OL>) {
+    chomp;
+    if (/^# latest versions of kernel docs, as of (2\.([246])\.([0-9][0-9]?))/) {
+       $OLDKVER       = $1;
+       $OLDPATCHLEVEL = $2;
+       $OLDSUBLEBEL   = $3;
+       unless ($OLDPATCHLEVEL == $NEWPATCHLEVEL &&
+               ++$OLDSUBLEBEL == $NEWSUBLEVEL) {
+           die "illegal version number.\n";
+       }
+       next;
+    }
+    ($VER, $FILE) = split;
+    $FVER{$FILE} = $VER;
+}
+close OL;
+
+print STDERR "Current kdoc version is $OLDKVER\n";
+print STDERR "updating kdoc to $NEWKVER...\n";
+
+# ¤È¤ê¤¢¤¨¤º bzip2 ¤Ê¥Ñ¥Ã¥Á¥Õ¥¡¥¤¥ë¤Ë·è¤áÂǤÁ.
+#
+open KP, "bzip2 -dc $K_PATCH |";
+while (<KP>){
+    next unless ((/^\+\+\+ b\/Documentation\/([^ \t\n]*)/) or
+                (/^\+\+\+ linux-$NEWKVER\/Documentation\/([^ \t]*)/) or
+                (/^\+\+\+ linux\/Documentation\/([^ \t]*)/));
+    print STDERR "$1 updated!\n";
+    $FVER{$1} = $NEWKVER;
+}
+
+print "# latest versions of kernel docs, as of $NEWKVER\n";
+foreach $k (sort keys %FVER){
+    printf "%-7s%s\n", $FVER{$k}, $k;
+}