module VagrantPlugins
  module ProviderLibvirt
    VERSION_FILE = File.dirname(__FILE__) + "/version"

    def self.get_version
      if File.exist?(VERSION_FILE)
        version = File.read(VERSION_FILE)
      else
        git_version = `git describe --tags`
        version_parts = git_version.split('-').first(2) # drop the git sha if it exists
        if version_parts.length > 1
          # increment the patch number so that this is marked as a pre-release of the
          # next possible release
          main_version_parts = Gem::Version.new(version_parts[0]).segments
          main_version_parts[-1] = main_version_parts.last + 1
          version_parts = main_version_parts + ["pre", version_parts[1]]
        end
        version = version_parts.join(".")
      end

      return version.freeze
    end

    def self.write_version
      File.write(VERSION_FILE, self.get_version)
    end
  end
end