Class: Oxidized::Git
Instance Method Summary collapse
- #fetch(node, group) ⇒ Object
-
#initialize ⇒ Git
constructor
A new instance of Git.
- #setup ⇒ Object
- #store(file, data, opt = {}) ⇒ Object
Constructor Details
#initialize ⇒ Git
Returns a new instance of Git.
9 10 11 |
# File 'lib/oxidized/output/git.rb', line 9 def initialize @cfg = CFG.output.git end |
Instance Method Details
#fetch(node, group) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/oxidized/output/git.rb', line 40 def fetch node, group begin repo = @cfg.repo if group repo = File.join File.dirname(repo), group + '.git' end repo = Rugged::Repository.new repo index = repo.index index.read_tree repo.head.target.tree unless repo.empty? repo.read(index.get(node)[:oid]).data rescue 'node not found' end end |
#setup ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/oxidized/output/git.rb', line 13 def setup if @cfg.empty? CFGS.user.output.git.user = 'Oxidized' CFGS.user.output.git.email = '[email protected]' CFGS.user.output.git.repo = File.join(Config::Root, 'oxidized.git') CFGS.save :user raise NoConfig, 'no output git config, edit ~/.config/oxidized/config' end end |
#store(file, data, opt = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/oxidized/output/git.rb', line 23 def store file, data, opt={} msg = opt[:msg] user = (opt[:user] or @cfg.user) email = (opt[:email] or @cfg.email) repo = @cfg.repo if opt[:group] repo = File.join File.dirname(repo), opt[:group] + '.git' end begin repo = Rugged::Repository.new repo update_repo repo, file, data, msg, user, email rescue Rugged::OSError, Rugged::RepositoryError Rugged::Repository.init_at repo, :bare retry end end |