diff --git a/lib/rbpkg/repo.rb b/lib/rbpkg/repo.rb
index 5c71f25..ae81ab0 100644
--- a/lib/rbpkg/repo.rb
+++ b/lib/rbpkg/repo.rb
@@ -174,14 +174,16 @@ class Rbpkg::Repo
end
def inspect
- """%Repo{
- name: #{name.inspect}
- dir: #{dir.inspect}
- git_url: #{git_url.inspect}
- src_dir: #{src_dir.inspect}
- src_parent_dir: #{src_parent_dir.inspect}
- head: #{head.inspect}
- hash: #{hash.inspect}
+ """%#{self.class.name}{
+ name: #{name.inspect},
+ dir: #{dir.inspect},
+ git_url: #{git_url.inspect},
+ src_dir: #{src_dir.inspect},
+ src_parent_dir: #{src_parent_dir.inspect},
+ head: #{head.inspect},
+ hash: #{hash.inspect},
+ version: #{version.inspect},
+ installed_version: #{installed_version.inspect}
}"""
end
@@ -224,6 +226,18 @@ class Rbpkg::Repo
File.dirname(installed)
end
+ def installed_version
+ if installed?
+ File.open(installed, "r") do |input|
+ while line = input.gets
+ if version = line.scan(/^Version: (.*)$/)[0]
+ return version[0]
+ end
+ end
+ end
+ end
+ end
+
def name
self.class.name.to_s.downcase.scan(/::([^:]*)$/)[0][0]
end
@@ -366,6 +380,11 @@ class Rbpkg::Repo
end
end
+ def upgrade
+ pull
+ return if installed_version == version
+ end
+
def version
if File.directory?(src_dir)
"#{head}-#{hash}"