aboutsummaryrefslogtreecommitdiff
path: root/build2/version/utility.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'build2/version/utility.cxx')
-rw-r--r--build2/version/utility.cxx81
1 files changed, 0 insertions, 81 deletions
diff --git a/build2/version/utility.cxx b/build2/version/utility.cxx
deleted file mode 100644
index 8286ff8..0000000
--- a/build2/version/utility.cxx
+++ /dev/null
@@ -1,81 +0,0 @@
-// file : build2/version/utility.cxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#include <build2/version/utility.hxx>
-
-#include <libbutl/manifest-parser.mxx>
-#include <libbutl/manifest-serializer.mxx>
-
-#include <libbuild2/diagnostics.hxx>
-
-using namespace butl;
-
-namespace build2
-{
- namespace version
- {
- auto_rmfile
- fixup_manifest (const path& in, path out, const standard_version& v)
- {
- auto_rmfile r (move (out), !dry_run /* active */);
-
- if (!dry_run)
- {
- try
- {
- permissions perm (path_permissions (in));
-
- ifdstream ifs (in);
- manifest_parser p (ifs, in.string ());
-
- auto_fd ofd (fdopen (r.path,
- fdopen_mode::out |
- fdopen_mode::create |
- fdopen_mode::exclusive |
- fdopen_mode::binary,
- perm));
-
- ofdstream ofs (move (ofd));
- manifest_serializer s (ofs, r.path.string ());
-
- manifest_name_value nv (p.next ());
- assert (nv.name.empty () && nv.value == "1"); // We just loaded it.
- s.next (nv.name, nv.value);
-
- for (nv = p.next (); !nv.empty (); nv = p.next ())
- {
- if (nv.name == "version")
- nv.value = v.string ();
-
- s.next (nv.name, nv.value);
- }
-
- s.next (nv.name, nv.value); // End of manifest.
- s.next (nv.name, nv.value); // End of stream.
-
- ofs.close ();
- ifs.close ();
- }
- catch (const manifest_parsing& e)
- {
- location l (&in, e.line, e.column);
- fail (l) << e.description;
- }
- catch (const manifest_serialization& e)
- {
- location l (&r.path);
- fail (l) << e.description;
- }
- catch (const io_error& e)
- {
- fail << "io error: " << e <<
- info << "while reading " << in <<
- info << "while writing " << r.path;
- }
- }
-
- return r;
- }
- }
-}