Sha256: f80e21ae41b418cfce62bc468a44207b5d5f1ead2ddc1dd74d3cf1826585ae39

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 KB

Contents

require 'autobuild/environment'

module Autoproj
    module Ops
        def self.cached_env_path(root_dir)
            File.join(root_dir, '.autoproj', 'env.yml')
        end

        def self.load_cached_env(root_dir)
            path = cached_env_path(root_dir)
            if File.file?(path)
                env = YAML.safe_load(File.read(path))
                Autobuild::Environment::ExportedEnvironment.new(
                    env['set'], env['unset'], env['update'])
            end
        end

        def self.save_cached_env(root_dir, env)
            env = env.exported_environment
            path = cached_env_path(root_dir)
            existing =
                begin
                    YAML.safe_load(File.read(path))
                rescue Exception
                end

            env = Hash['set' => env.set, 'unset' => env.unset, 'update' => env.update]
            if env != existing
                Ops.atomic_write(path) do |io|
                    io.write YAML.dump(env)
                end
                true
            end
        end
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
autoproj-2.14.0 lib/autoproj/ops/cached_env.rb
autoproj-2.13.0 lib/autoproj/ops/cached_env.rb
autoproj-2.12.1 lib/autoproj/ops/cached_env.rb