Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'win32/registry'
- passwords = Hash.new
- file = nil
- begin
- file = File.new("#{ENV['APPDATA']}\\postgresql\\pgpass.conf", "r")
- while (line = file.gets)
- c = line.split(':')
- key = "#{c[0]}:#{c[1]}:#{c[2]}:#{c[3]}"
- passwords[key] = c[4].strip if c.length > 4
- end
- rescue => err
- puts "Exception: #{err}"
- ensure
- file.close
- end
- a = nil
- begin
- File.open('ide-scripting.js', 'w') {
- |file|
- 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");
- Win32::Registry::HKEY_CURRENT_USER.open("Software\\pgAdmin III\\Servers") do |reg|
- reg.each_key {
- |n, v|
- reg.open(n) do |sub|
- description = sub['Description'].tr(" ", "_")
- server = sub['Server']
- port = sub['Port']
- username = sub['Username']
- key = "#{server}:#{port}:*:#{username}"
- password = "#{passwords[key]}"
- file.write("psiManager.addDataSource(new com.intellij.database.dataSource.LocalDataSource(\"#{description}\", \"org.postgresql.Driver\", \"jdbc:postgresql://#{server}:5432/postgres\", \"#{username}\", \"#{password}\"));\n")
- end
- }
- end
- }
- puts "Export complete"
- puts "Please use Datagrip to run the ide script located in #{File.absolute_path("./ide-scripting.js")}"
- rescue => err
- puts "Exception: #{err}"
- end
Add Comment
Please, Sign In to add comment