about summary refs log tree commit diff
path: root/src/libexpr/names.hh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2008-07-01T10·10+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2008-07-01T10·10+0000
commitd567baabbd99fdb92e67295a77aef76ef970e65c (patch)
treed31c1737c52da705c17da78edb517bc2e56b841a /src/libexpr/names.hh
parentb3b0b2a29e2842784f80cf839f84af18b0b83e90 (diff)
* Export the nix-env derivation name parsing and version comparison
  logic through the `parseDrvName' and `compareVersions' primops.
  This will allow expressions to easily check whether some dependency
  is a specific needed version or falls in some version range.  See
  tests/lang/eval-okay-versions.nix for examples.

Diffstat (limited to 'src/libexpr/names.hh')
-rw-r--r--src/libexpr/names.hh33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/libexpr/names.hh b/src/libexpr/names.hh
new file mode 100644
index 0000000000..e189302d6d
--- /dev/null
+++ b/src/libexpr/names.hh
@@ -0,0 +1,33 @@
+#ifndef __NAMES_H
+#define __NAMES_H
+
+#include "types.hh"
+
+
+namespace nix {
+
+
+struct DrvName
+{
+    string fullName;
+    string name;
+    string version;
+    unsigned int hits;
+
+    DrvName();
+    DrvName(const string & s);
+    bool matches(DrvName & n);
+};
+
+
+typedef list<DrvName> DrvNames;
+
+
+int compareVersions(const string & v1, const string & v2);
+DrvNames drvNamesFromArgs(const Strings & opArgs);
+
+
+}
+
+
+#endif /* !__NAMES_H */