Guest User

Untitled

a guest
Apr 20th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. require 'win32/registry'
  2.  
  3. passwords = Hash.new
  4. file = nil
  5. begin
  6. file = File.new("#{ENV['APPDATA']}\\postgresql\\pgpass.conf", "r")
  7. while (line = file.gets)
  8. c = line.split(':')
  9. key = "#{c[0]}:#{c[1]}:#{c[2]}:#{c[3]}"
  10. passwords[key] = c[4].strip if c.length > 4
  11. end
  12. rescue => err
  13. puts "Exception: #{err}"
  14. ensure
  15. file.close
  16. end
  17.  
  18. a = nil
  19. begin
  20. File.open('ide-scripting.js', 'w') {
  21. |file|
  22. file.write("var psiManager = com.intellij.util.containers.ContainerUtil.findInstance(com.intellij.database.psi.DbPsiFacade.getInstance(IDE.project).getDbManagers(), com.intellij.database.psi.DefaultDbPsiManager.class);\n");
  23. Win32::Registry::HKEY_CURRENT_USER.open("Software\\pgAdmin III\\Servers") do |reg|
  24. reg.each_key {
  25. |n, v|
  26. reg.open(n) do |sub|
  27. description = sub['Description'].tr(" ", "_")
  28. server = sub['Server']
  29. port = sub['Port']
  30. username = sub['Username']
  31. key = "#{server}:#{port}:*:#{username}"
  32. password = "#{passwords[key]}"
  33. file.write("psiManager.addDataSource(new com.intellij.database.dataSource.LocalDataSource(\"#{description}\", \"org.postgresql.Driver\", \"jdbc:postgresql://#{server}:5432/postgres\", \"#{username}\", \"#{password}\"));\n")
  34. end
  35. }
  36. end
  37. }
  38. puts "Export complete"
  39. puts "Please use Datagrip to run the ide script located in #{File.absolute_path("./ide-scripting.js")}"
  40. rescue => err
  41. puts "Exception: #{err}"
  42. end
Add Comment
Please, Sign In to add comment