Guest User

Untitled

a guest
Jun 19th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require 'rubygems'
  4. require 'nokogiri'
  5.  
  6. passwords = Nokogiri::XML(IO.read(ARGV.first))
  7.  
  8. def tags_for(entry)
  9. if entry.parent.attribute("type").to_s == "folder"
  10. [entry.parent.xpath('name').text.downcase] + tags_for(entry.parent)
  11. else
  12. []
  13. end
  14. end
  15.  
  16. passwords.xpath("//entry").each do |entry|
  17. unless entry.attribute("type").to_s == "folder"
  18. line = [ entry.xpath("name"),
  19. entry.xpath('field[@id="generic-username"]'),
  20. entry.xpath('field[@id="generic-password"]'),
  21. (entry.xpath('field[@id="generic-url"]') or entry.xpath('field[@id="generic-hostname"]')),
  22. entry.xpath('field[@id="generic-email"]'),
  23. tags_for(entry).join(' ')
  24. ].collect do |value|
  25. value = value.text if value.respond_to?(:text)
  26. value or ""
  27. end.join(",")
  28.  
  29. puts line
  30. end
  31. end
Add Comment
Please, Sign In to add comment