summaryrefslogtreecommitdiff
path: root/apt-pkg/cachefilter-patterns.cc
Commit message (Collapse)AuthorAgeFilesLines
* patterns: Add ?sectionJulian Andres Klode2019-11-261-0/+2
|
* patterns: Add ?all-versionsJulian Andres Klode2019-11-261-0/+2
|
* patterns: Implement ?narrow(...), as ?any-version(?and(...))Julian Andres Klode2019-11-261-1/+3
| | | | | This is pure syntactic sugar - ?narrow does not exist in the abstract syntax.
* patterns: Add ?any-versionJulian Andres Klode2019-11-261-0/+2
|
* patterns: Add ?originJulian Andres Klode2019-11-251-0/+2
|
* patterns: Add ?archiveJulian Andres Klode2019-11-251-0/+2
|
* patterns: Add ?source-name and ?source-versionJulian Andres Klode2019-11-251-0/+4
|
* patterns: Add ?versionJulian Andres Klode2019-11-251-0/+2
|
* patterns: Add base class for regular expression matchingJulian Andres Klode2019-11-251-0/+36
|
* patterns: Allow more complex wordsJulian Andres Klode2019-08-191-6/+4
| | | | | Only disallow ,() and on the start of a word also ~ and ?. Make sure to include \0 as disallowed.
* patterns: Improve error reporting at end of argument listJulian Andres Klode2019-08-151-1/+3
|
* Add ?virtual patternJulian Andres Klode2019-08-151-0/+2
| | | | This matches any package that does not have versions.
* Add the ?exact-name patternJulian Andres Klode2019-08-151-0/+2
| | | | | | The ?exact-name pattern matches the name exactly, there is no substring matching going on, or any regular expression or fnmatch magic.
* Add ?essential patternJulian Andres Klode2019-08-151-0/+2
| | | | | | This matches all packages where at least one of the versions is marked essential; or well, whenver apt considers a package essential.
* Add ?broken patternJulian Andres Klode2019-08-151-0/+2
| | | | | This matches all packages that have broken dependencies in the installed version or the version selected for install.
* Add ?config-files and ?installed patternsJulian Andres Klode2019-08-151-0/+4
| | | | | | These two are mutually exclusive states of installed-ness. And ?installed package is fully unpacked and configured; a ?config-files package only has config files left.
* Add ?obsolete and ?upgradable patternsJulian Andres Klode2019-08-151-0/+4
| | | | | | | | | These match packages that have no version in a repository, or where an upgrade is available. Notably, ?and(?obsolete,?upgradable) == ?false because an upgradable package is by definition not obsolete.
* Add ?automatic and ?garbage patternsJulian Andres Klode2019-08-151-0/+4
| | | | | | These patterns allow you to identify automatically installed packages, as well as automatically installed packages that are no longer reachable from the manually installed ones.
* Add patterns for the existing CacheFilter::Matcher classesJulian Andres Klode2019-08-151-0/+30
| | | | | | | This implements the basic logic patterns: ?and ?false ?not ?or ?true and the basic package patterns: ?architecture ?name ?x-name-fnmatch
* Add pattern tree parser infra and connect with cacheset and apt listJulian Andres Klode2019-08-151-0/+51
| | | | | This adds a transformation from parse tree into a CacheFilter and connects it with cachesets and the apt list command.
* Add initial support for parsing patterns into parse treesJulian Andres Klode2019-08-151-0/+205
Introduce a parser for patterns that generates a parse tree. The language understood by the parser is: pattern = '?'TERM | '?'TERM '(' pattern (',' pattern)* ','? ')' | WORD | QUOTED-WORD TERM = [0-9a-zA-Z-] WORD = [0-9a-ZA-Z-.*^$\[\]_\\] QUOTED_WORD = "..." # you know what I mean This language is context free, which is a massive simplification from aptitude's language, where ?foo(bar) could have two different meanings depending on whether ?foo takes an argument or not.