Browse Source

* cmdline/apt-config.cc:
- make it possible to limit dump to a subtree
- implement --empty and --format option for dump

David Kalnischkies 14 years ago
parent
commit
a88136062d
4 changed files with 31 additions and 3 deletions
  1. 9 1
      cmdline/apt-config.cc
  2. 4 1
      debian/changelog
  3. 15 1
      doc/apt-config.8.xml
  4. 3 0
      doc/apt-verbatim.ent

+ 9 - 1
cmdline/apt-config.cc

@@ -63,7 +63,13 @@ bool DoShell(CommandLine &CmdL)
 /* */
 bool DoDump(CommandLine &CmdL)
 {
-   _config->Dump(cout);
+   bool const empty = _config->FindB("APT::Config::Dump::EmptyValue", true);
+   std::string const format = _config->Find("APT::Config::Dump::Format", "%f \"%v\";\n");
+   if (CmdL.FileSize() == 1)
+      _config->Dump(cout, NULL, format.c_str(), empty);
+   else
+      for (const char **I = CmdL.FileList + 1; *I != 0; ++I)
+	 _config->Dump(cout, *I, format.c_str(), empty);
    return true;
 }
 									/*}}}*/
@@ -100,6 +106,8 @@ int main(int argc,const char *argv[])					/*{{{*/
       {'v',"version","version",0},
       {'c',"config-file",0,CommandLine::ConfigFile},
       {'o',"option",0,CommandLine::ArbItem},
+      {0,"empty","APT::Config::Dump::EmptyValue",CommandLine::Boolean},
+      {0,"format","APT::Config::Dump::Format",CommandLine::HasArg},
       {0,0,0,0}};
    CommandLine::Dispatch Cmds[] = {{"shell",&DoShell},
                                    {"dump",&DoDump},

+ 4 - 1
debian/changelog

@@ -7,8 +7,11 @@ apt (0.9.3) unstable; urgency=low
     - add a more versatile Dump() method
   * apt-pkg/acquire-worker.cc:
     - use Dump() to generate the configuration message for sending
+  * cmdline/apt-config.cc:
+    - make it possible to limit dump to a subtree
+    - implement --empty and --format option for dump
 
- -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 22 Apr 2012 12:28:13 +0200
+ -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 22 Apr 2012 12:29:07 +0200
 
 apt (0.9.2) unstable; urgency=low
 

+ 15 - 1
doc/apt-config.8.xml

@@ -85,7 +85,21 @@ eval $RES
    &apt-cmdblurb;
    
    <variablelist>
-   
+     <varlistentry>
+      <term><option>--empty</option></term>
+      <listitem><para>Include options which have an empty value. This is the default, so
+		      use --no-empty to remove them from the output.</para></listitem>
+     </varlistentry>
+
+     <varlistentry>
+      <term><option>--format '<replaceable>&percnt;f &#x0022;&percnt;v&#x0022;;&percnt;n</replaceable>'</option></term>
+      <listitem><para>Defines the output of each config option. &percnt;t will be replaced with the tagname,
+		      &percnt;f with the complete tagname and &percnt;v with the value of the option.
+		      Use uppercase letters and the respective values will be quoted. Additionally
+		      &percnt;n will be replaced by a newline, &percnt;N by a tab. A &percnt; can be
+		      printed by using &percnt;&percnt;.</para></listitem>
+     </varlistentry>
+
      &apt-commonoptions;
      
    </variablelist>

+ 3 - 0
doc/apt-verbatim.ent

@@ -269,8 +269,11 @@
 		&synopsis-help;
 	</group>
 </cmdsynopsis></refsynopsisdiv>">
+<!--<arg><option>- -format '<replaceable>&#37;f \"&#37;v\";&#37;n</replaceable>'</option></arg>-->
 <!ENTITY synopsis-command-apt-config "<refsynopsisdiv><cmdsynopsis>
 	<command>apt-config</command>
+	<arg><option>--empty</option></arg>
+	<arg><option>--format '<replaceable>&percnt;f &#x0022;&percnt;v&#x0022;;&percnt;n</replaceable>'</option></arg>
 	&synopsis-arg-option;
 	&synopsis-arg-config;
 	<group choice='req'>