From 8562fabbfecb6a9635e90646c1a8b356cec2e375 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 4 Nov 2016 13:56:33 +0000 Subject: [PATCH] finish --- .gitignore | 2 + 0001-provide-dpkg-filter-valid-versions.patch | 75 +++++++++++++++++++ README | 7 ++ check | 18 ++--- escape | 2 +- generate.c | 2 +- 6 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 0001-provide-dpkg-filter-valid-versions.patch create mode 100644 README diff --git a/.gitignore b/.gitignore index b25c15b..a3694ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ *~ +generate +stunt diff --git a/0001-provide-dpkg-filter-valid-versions.patch b/0001-provide-dpkg-filter-valid-versions.patch new file mode 100644 index 0000000..c59a0ed --- /dev/null +++ b/0001-provide-dpkg-filter-valid-versions.patch @@ -0,0 +1,75 @@ +From fc2314965332d9f9efb3f79f500f4ddbf76e91f8 Mon Sep 17 00:00:00 2001 +From: Ian Jackson +Date: Fri, 4 Nov 2016 13:55:19 +0000 +Subject: [PATCH] provide dpkg --filter-valid-versions + +Signed-off-by: Ian Jackson +--- + src/enquiry.c | 20 ++++++++++++++++++++ + src/main.c | 1 + + src/main.h | 2 ++ + 3 files changed, 23 insertions(+) + +diff --git a/src/enquiry.c b/src/enquiry.c +index 9f71863..b5010ad 100644 +--- a/src/enquiry.c ++++ b/src/enquiry.c +@@ -694,3 +694,23 @@ cmpversions(const char *const *argv) + else + return rip->if_equal; + } ++ ++int ++filterversions(const char *const *argv) ++{ ++ char buf[100]; ++ char *newline; ++ struct dpkg_error err; ++ struct dpkg_version vp; ++ ++ while (fgets(buf,sizeof(buf),stdin)) { ++ newline = strchr(buf,'\n'); ++ assert(newline); ++ *newline = 0; ++ if (parseversion(&vp, buf, &err)) ++ continue; ++ puts(buf); ++ } ++ assert(feof(stdin)); ++ return 0; ++} +diff --git a/src/main.c b/src/main.c +index 122a28f..5d03cee 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -694,6 +694,7 @@ static const struct cmdinfo cmdinfos[]= { + ACTION( "print-foreign-architectures", 0, act_printforeignarches, print_foreign_arches ), + ACTION( "predep-package", 0, act_predeppackage, predeppackage ), + ACTION( "compare-versions", 0, act_cmpversions, cmpversions ), ++ ACTION( "filter-valid-versions", 0, act_filterversions, filterversions ), + /* + ACTION( "command-fd", 'c', act_commandfd, commandfd ), + */ +diff --git a/src/main.h b/src/main.h +index cddf45e..f4fad13 100644 +--- a/src/main.h ++++ b/src/main.h +@@ -97,6 +97,7 @@ enum action { + act_controlshow, + + act_cmpversions, ++ act_filterversions, + + act_arch_add, + act_arch_remove, +@@ -183,6 +184,7 @@ int printarch(const char *const *argv); + int printinstarch(const char *const *argv); + int print_foreign_arches(const char *const *argv); + int cmpversions(const char *const *argv); ++int filterversions(const char *const *argv); + + /* from verify.c */ + +-- +2.10.1 + diff --git a/README b/README new file mode 100644 index 0000000..2e5b8f1 --- /dev/null +++ b/README @@ -0,0 +1,7 @@ +./generate | ../dpkg/src/dpkg --filter-valid-versions | ./escape | ./check + + + +Copyright 2016 Ian Jackson +Consider all of this GPLv2-or-later +There is NO WARRANTY diff --git a/check b/check index df4b83f..a7ae489 100755 --- a/check +++ b/check @@ -9,8 +9,8 @@ cd stunt #exec 3<&0 ) { -print STDERR ">$_<\n"; +#print STDERR ">$_<\n"; $file ||= new IO::File "batch", ">" or die $!; chomp; - print $file "create refs/tags/$_ '$head'\n" or die $!; - $count++ < 1000 or complete_batch; + print $file "delete refs/tags/$_\n" or die $!; + $count++ < 100000 or complete_batch; } -print STDERR "FOO\n"; +#print STDERR "FOO\n"; STDIN->error and die $!; complete_batch(); ' diff --git a/escape b/escape index cd2655f..3712b11 100755 --- a/escape +++ b/escape @@ -2,4 +2,4 @@ use strict; y/:~/%_/; -s/\.(?=\.|$|lock$)/.#/; +s/\.(?=\.|$|lock$)/.#/g; diff --git a/generate.c b/generate.c index f5b79f5..d12545a 100644 --- a/generate.c +++ b/generate.c @@ -3,7 +3,7 @@ #include static const char charset[]= - "01234567890" + "0123456789" "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ".-+:~"; -- 2.30.2