# encoding: UTF-8
# JGRIT standalone installer. Same contents as the matching RBZ.
require "sketchup.rb"
require "base64"
require "fileutils"

begin
  destination = Sketchup.find_support_file("Plugins")
  raise "SketchUp Plugins folder not found" unless destination
  payload = {
    "jgrit_auto_height.rb" => "IyBmcm96ZW5fc3RyaW5nX2xpdGVyYWw6IHRydWUKcmVxdWlyZSAnc2tldGNodXAucmInCnJlcXVpcmUgJ2V4dGVuc2lvbnMucmInCnVubGVzcyBmaWxlX2xvYWRlZD8oX19GSUxFX18pCiAgZXh0ZW5zaW9uID0gU2tldGNodXBFeHRlbnNpb24ubmV3KCdKR1JJVCBBdXRvIEhlaWdodCcsICdqZ3JpdF9hdXRvX2hlaWdodC9tYWluJykKICBleHRlbnNpb24uZGVzY3JpcHRpb24gPSAn7ISg7YOd7ZWcIOuptCDrhpLsnbQg7Jis66as6riwIOKAlCDqs7XqsJwg7YWM7Iqk7Yq4IOuyhOyghCcKICBleHRlbnNpb24udmVyc2lvbiA9ICcxLjEuMS1iZXRhLjEnCiAgZXh0ZW5zaW9uLmNyZWF0b3IgPSAnSkdSSVQnCiAgZXh0ZW5zaW9uLmNvcHlyaWdodCA9ICcyMDI2IEpHUklUJwogIFNrZXRjaHVwLnJlZ2lzdGVyX2V4dGVuc2lvbihleHRlbnNpb24sIHRydWUpCiAgZmlsZV9sb2FkZWQoX19GSUxFX18pCmVuZAoK",
    "jgrit_auto_height/icon.svg" => "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIiBzdHJva2U9IiMzMDMzM2EiIHN0cm9rZS13aWR0aD0iMS43IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Im0zIDIxIDEwLTYgMTAgNi0xMCA2eiIgZmlsbD0iIzMwMzMzYSIvPjxwYXRoIGQ9Im0zIDEzIDEwLTYgMTAgNi0xMCA2eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0zIDEzdjhtMTAtMnY4bTEwLTE0djgiIHN0cm9rZS1kYXNoYXJyYXk9IjIgMiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yNyAxOFY0bS00IDQgNC00IDQgNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmY4NTFiIi8+PC9zdmc+Cgo=",
    "jgrit_auto_height/main.rb" => "IyBmcm96ZW5fc3RyaW5nX2xpdGVyYWw6IHRydWUKIyBKR1JJVCBBdXRvIEhlaWdodAojIFNlbGVjdCBTa2V0Y2hVcCBmYWNlcyBhbmQgcHVzaC9wdWxsIHRoZW0gYnkgYSB1c2VyLWVudGVyZWQgaGVpZ2h0LgoKcmVxdWlyZSAnc2tldGNodXAucmInCnJlcXVpcmVfcmVsYXRpdmUgJ3VpJwoKbW9kdWxlIEpHUklUCiAgbW9kdWxlIEF1dG9IZWlnaHQKICAgIFBMVUdJTl9OQU1FID0gJ0pHUklUIOuptCDsnpDrj5kg64aS7J20JwoKICAgIGRlZiBzZWxmLnJ1bgogICAgICBtb2RlbCA9IFNrZXRjaHVwLmFjdGl2ZV9tb2RlbAogICAgICBzZWxlY3Rpb24gPSBtb2RlbC5zZWxlY3Rpb24KICAgICAgZmFjZXMgPSBzZWxlY3Rpb24uZ3JlcChTa2V0Y2h1cDo6RmFjZSkKCiAgICAgIGlmIGZhY2VzLmVtcHR5PwogICAgICAgIFVJLm1lc3NhZ2Vib3goJ+uGkuydtOulvCDsmKzrprQg66m07J2EIOuovOyggCDshKDtg53tlbTso7zshLjsmpQuJykKICAgICAgICByZXR1cm4KICAgICAgZW5kCgogICAgICBwcm9tcHRzID0gWyfrhpLsnbQnXQogICAgICBkZWZhdWx0cyA9IFsnMjQwMG1tJ10KICAgICAgaW5wdXQgPSBVSS5pbnB1dGJveChwcm9tcHRzLCBkZWZhdWx0cywgUExVR0lOX05BTUUpCiAgICAgIHJldHVybiB1bmxlc3MgaW5wdXQKCiAgICAgIGhlaWdodCA9IGlucHV0WzBdLnRvX2wKICAgICAgaWYgaGVpZ2h0ID09IDAKICAgICAgICBVSS5tZXNzYWdlYm94KCfrhpLsnbTripQgMOuztOuLpCDtgbAg6rCS7J2EIOyeheugpe2VtOyjvOyEuOyalC4nKQogICAgICAgIHJldHVybgogICAgICBlbmQKCiAgICAgIG1vZGVsLnN0YXJ0X29wZXJhdGlvbihQTFVHSU5fTkFNRSwgdHJ1ZSkKCiAgICAgIGJlZ2luCiAgICAgICAgIyBXb3JrIGZyb20gYSBjb3BpZWQgYXJyYXkgYmVjYXVzZSBwdXNocHVsbCBtb2RpZmllcyBtb2RlbCBnZW9tZXRyeS4KICAgICAgICBmYWNlcy5kdXAuZWFjaCBkbyB8ZmFjZXwKICAgICAgICAgIG5leHQgdW5sZXNzIGZhY2UudmFsaWQ/CgogICAgICAgICAgYmVnaW4KICAgICAgICAgICAgZmFjZS5wdXNocHVsbChoZWlnaHQsIGZhbHNlKQogICAgICAgICAgcmVzY3VlID0+IGUKICAgICAgICAgICAgcHV0cyAiW0pHUklUIEF1dG9IZWlnaHRdIEZhY2UgZXJyb3I6ICN7ZS5tZXNzYWdlfSIKICAgICAgICAgIGVuZAogICAgICAgIGVuZAoKICAgICAgICBtb2RlbC5jb21taXRfb3BlcmF0aW9uCiAgICAgIHJlc2N1ZSA9PiBlCiAgICAgICAgbW9kZWwuYWJvcnRfb3BlcmF0aW9uCiAgICAgICAgVUkubWVzc2FnZWJveCgi7Jik66WY6rCAIOuwnOyDne2WiOyKteuLiOuLpDpcbiN7ZS5tZXNzYWdlfSIpCiAgICAgIGVuZAogICAgZW5kCgogICAgdW5sZXNzIGZpbGVfbG9hZGVkPyhfX0ZJTEVfXykKICAgICAgSkdSSVQ6OlRvb2xzVUkuYWRkKCdhdXRvX2hlaWdodCcsICdKR1JJVCBBdXRvIEhlaWdodCcsICfshKDtg53tlZwg66m0IOuGkuydtCDsmKzrpqzquLAnLCBGaWxlLmpvaW4oX19kaXJfXywgJ2ljb24uc3ZnJykpIHsgc2VsZi5ydW4gfQogICAgICBmaWxlX2xvYWRlZChfX0ZJTEVfXykKICAgIGVuZAogIGVuZAplbmQKCg==",
    "jgrit_auto_height/README.txt" => "SkdSSVQgQXV0byBIZWlnaHQgMS4xLjEtYmV0YS4xCuyEoO2Dne2VnCDrqbQg64aS7J20IOyYrOumrOq4sAoK6rO16rCcIO2FjOyKpO2KuCDrsoTsoITsnoXri4jri6QuIFNrZXRjaFVwIOyLpOygnCDrqqjrjbjsl5DshJzsnZgg7J6R64+ZIOqygOymneydgCDslYTsp4Eg7JmE66OM65CY7KeAIOyViuyVmOyKteuLiOuLpC4KV2luZG93cyDrjbDsiqTtgazthrEgU2tldGNoVXAgMjAyNOulvCDrjIDsg4HsnLzroZwg7J6R7ISx7ZaI7Iq164uI64ukLiDri6Trpbgg67KE7KCE6rO8IG1hY09T64qUIOuvuOqygOymneyeheuLiOuLpC4K7J6R7JeFIO2MjOydvOydmCDrs7Xsgqzrs7jsl5DshJwg66i87KCAIOyLpO2Wie2VmOqzoCDqsrDqs7zrpbwg7ZmV7J247ZWY7IS47JqULiDsnpHsl4XsnYAgQ3RybCta66GcIOyLpO2WiSDst6jshoztlaAg7IiYIOyeiOyKteuLiOuLpC4KCuyEpOy5mDog7ZmV7J6lIO2UhOuhnOq3uOueqCDqtIDrpqzsnpAgPiDtmZXsnqUg7ZSE66Gc6re4656oIOyEpOy5mCA+IFJCWiDshKDtg50uCuyLpO2WiTog67O06riwID4g64+E6rWsIOuqqOydjCA+IEpHUklUIFRvb2xzIOuYkOuKlCDtmZXsnqUg7ZSE66Gc6re4656oID4gSkdSSVQgVG9vbHMuCuq4sOyhtCBKU1RVRElPIOuPmeuqhSDrj4Tqtazrpbwg7ZWo6ruYIOyEpOy5mO2VmOuptCDrqZTribTqsIAg65GYIOuLpCDtkZzsi5zrkKAg7IiYIOyeiOyKteuLiOuLpC4KCuq3uOujuSDrgrTrtoDripQg7Y647KeRIOuqqOuTnOyXkOyEnCDrqbTsnYQg7ISg7YOd7ZWcIOuSpCDrhpLsnbTrpbwg7J6F66Cl7ZWp64uI64ukLiDsmIg6IDI0MDBtbS4g6rCBIOuptOydmCDrspXshKAg67Cp7Zal7Jy866GcIFB1c2gvUHVsbO2VmOuvgOuhnCDsiJjsp4Eg64aS7J2064qUIOyImO2PieuptOydhCDsgqzsmqntlZjshLjsmpQuCgpKR1JJVCDrrLTro4wg7YWM7Iqk7Yq4IOudvOydtOyEoOyKpArqsJzsnbgg67CPIOyXheustCDtlITroZzsoJ3tirjsl5DshJwg66y066OMIOyCrOyaqeydhCDtl4jsmqntlanri4jri6QuCuycoOujjCDsnqztjJDrp6Qg67CPIEpHUklUIOuqhey5reydhCDsoJzqsbDtlZwg7J6s67Cw7Y+s64qUIO2XiOyaqe2VmOyngCDslYrsirXri4jri6QuCu2UvOuTnOuwsSDrsI8g7LWc7IugIOuyhOyghDogaHR0cHM6Ly9qZ3JpdC5rci9kb3dubG9hZHMKCuuzgOqyvTogSkdSSVQg66qF7LmtLCDsoJztkojrs4Qg7JWE7J207L2YLCDqs7XthrUg7Yi067CU7JmAIFJCWiDqtazshLEuCgoKCuyEpOy5mCDtm4QgU2tldGNoVXDsnYQg64uk7IucIOyLnOyeke2VmOyEuOyalC4g67O06riwID4g64+E6rWsIOuqqOydjCA+IEpHUklUIFRvb2xz7JeQ7IScIOyEpOy5mO2VnCDro6jruYTrpbwg7ZWo6ruYIOyCrOyaqe2VoCDsiJgg7J6I7Iq164uI64ukLiDqsIEg64+E6rWs64qUIOqwnOuzhCDshKTsuZjrkKnri4jri6QuCg==",
    "jgrit_auto_height/ui.rb" => "IyBmcm96ZW5fc3RyaW5nX2xpdGVyYWw6IHRydWUKbW9kdWxlIEpHUklUCiAgbW9kdWxlIFRvb2xzVUkKICAgIGRlZiBzZWxmLnJlZ2lzdGVyKGtleSwgY29tbWFuZCkKICAgICAgQGNvbW1hbmRzIHx8PSB7fQogICAgICByZXR1cm4gQGNvbW1hbmRzW2tleV0gaWYgQGNvbW1hbmRzW2tleV0KICAgICAgQG1lbnUgfHw9IFVJLm1lbnUoJ0V4dGVuc2lvbnMnKS5hZGRfc3VibWVudSgnSkdSSVQgVG9vbHMnKQogICAgICBAdG9vbGJhciB8fD0gVUk6OlRvb2xiYXIubmV3KCdKR1JJVCBUb29scycpCiAgICAgIEBjb21tYW5kc1trZXldID0gY29tbWFuZAogICAgICBAbWVudS5hZGRfaXRlbShjb21tYW5kKQogICAgICBAdG9vbGJhci5hZGRfaXRlbShjb21tYW5kKQogICAgICBAdG9vbGJhci5nZXRfbGFzdF9zdGF0ZSA9PSAtMSA/IEB0b29sYmFyLnNob3cgOiBAdG9vbGJhci5yZXN0b3JlCiAgICAgIGNvbW1hbmQKICAgIGVuZAogICAgZGVmIHNlbGYuYWRkKGtleSwgdGl0bGUsIGRlc2NyaXB0aW9uLCBpY29uX3BhdGggPSBuaWwsICZibG9jaykKICAgICAgY29tbWFuZCA9IFVJOjpDb21tYW5kLm5ldyh0aXRsZSwgJmJsb2NrKQogICAgICBjb21tYW5kLnRvb2x0aXAgPSB0aXRsZQogICAgICBjb21tYW5kLnN0YXR1c19iYXJfdGV4dCA9IGRlc2NyaXB0aW9uCiAgICAgIGljb25fcGF0aCB8fD0gRmlsZS5qb2luKF9fZGlyX18sICdpY29uLnN2ZycpCiAgICAgIGNvbW1hbmQuc21hbGxfaWNvbiA9IGNvbW1hbmQubGFyZ2VfaWNvbiA9IGljb25fcGF0aAogICAgICByZWdpc3RlcihrZXksIGNvbW1hbmQpCiAgICBlbmQKICBlbmQKZW5kCg=="
  }
  payload.each do |relative, encoded|
    target = File.join(destination, relative)
    FileUtils.mkdir_p(File.dirname(target))
    File.binwrite(target, Base64.strict_decode64(encoded))
  end
  UI.messagebox("JGRIT 설치가 완료되었습니다. SketchUp을 다시 시작한 뒤 도구 모음을 켜세요.")
rescue StandardError => error
  UI.messagebox("JGRIT 설치 실패: #{error.message}")
end
