add a tiny dump solver to quickly output a scenario
authorDavid Kalnischkies <kalnischkies@gmail.com>
Tue, 3 May 2011 15:27:11 +0000 (17:27 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Tue, 3 May 2011 15:27:11 +0000 (17:27 +0200)
cmdline/apt-dump-solver.cc [new file with mode: 0644]
cmdline/makefile
debian/apt-utils.install
debian/apt.dirs
debian/rules

diff --git a/cmdline/apt-dump-solver.cc b/cmdline/apt-dump-solver.cc
new file mode 100644 (file)
index 0000000..5bcfe4f
--- /dev/null
@@ -0,0 +1,50 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* #####################################################################
+
+   dummy solver to get quickly a scenario file out of APT
+
+   ##################################################################### */
+                                                                       /*}}}*/
+// Include Files                                                       /*{{{*/
+#include <apt-pkg/edsp.h>
+
+#include <config.h>
+
+#include <cstdio>
+                                                                       /*}}}*/
+
+// ShowHelp - Show a help screen                                       /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool ShowHelp() {
+
+       std::cout <<
+               PACKAGE " " VERSION " for " COMMON_ARCH " compiled on " __DATE__ " " __TIME__ << std::endl <<
+               "Usage: apt-dump-resolver\n"
+               "\n"
+               "apt-dump-resolver is a dummy solver who just dumps its input to the\n"
+               "file /tmp/dump.edsp and exists with a proper EDSP error.\n"
+               "\n"
+               "                       This dump has lost Super Cow Powers.\n";
+       return true;
+}
+                                                                       /*}}}*/
+int main(int argc,const char *argv[])                                  /*{{{*/
+{
+       if (argc > 1 && (strcmp(argv[1], "--help") == 0 || strcmp(argv[1],"-h") == 0 ||
+           strcmp(argv[1],"-v") == 0 || strcmp(argv[1],"--version") == 0)) {
+               ShowHelp();
+               return 0;
+       }
+
+       FILE* input = fdopen(STDIN_FILENO, "r");
+       FILE* output = fopen("/tmp/dump.edsp", "w");
+       char buffer[400];
+       while (fgets(buffer, sizeof(buffer), input) != NULL)
+               fputs(buffer, output);
+       fclose(output);
+       fclose(input);
+
+       EDSP::WriteError("I am too dumb, i can just dump!", stdout);
+}
index 4462cca..aea5d1d 100644 (file)
@@ -71,3 +71,10 @@ SLIBS = -lapt-pkg $(INTLLIBS)
 LIB_MAKES = apt-pkg/makefile
 SOURCE = apt-internal-solver.cc
 include $(PROGRAM_H)
+
+# The internal solver acting as an external
+PROGRAM=apt-dump-solver
+SLIBS = -lapt-pkg $(INTLLIBS)
+LIB_MAKES = apt-pkg/makefile
+SOURCE = apt-dump-solver.cc
+include $(PROGRAM_H)
index d947f26..0c72bfd 100644 (file)
@@ -1 +1,2 @@
 bin/libapt-inst*.so.* usr/lib/
+bin/apt-dump-solver usr/lib/apt/solvers/dump
index 2770d79..f9c0b6c 100644 (file)
@@ -1,5 +1,6 @@
 usr/bin
 usr/lib/apt/methods
+usr/lib/apt/solvers
 usr/lib/dpkg/methods/apt
 etc/apt
 etc/apt/apt.conf.d
index c8aefee..77a7b4f 100755 (executable)
@@ -182,7 +182,7 @@ apt: build build-doc
        dh_install -p$@ --sourcedir=$(BLD)
 
        # Remove the bits that are in apt-utils
-       rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS))
+       rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS) dump-solver)
 
        # https has its own package
        rm debian/$@/usr/lib/apt/methods/https