kosmos 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/Gemfile +15 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +21 -0
  6. data/Rakefile +2 -0
  7. data/bin/kosmos +93 -0
  8. data/kosmos.gemspec +24 -0
  9. data/lib/kosmos.rb +54 -0
  10. data/lib/kosmos/download_url.rb +76 -0
  11. data/lib/kosmos/git_adapter.rb +61 -0
  12. data/lib/kosmos/package.rb +119 -0
  13. data/lib/kosmos/package_dsl.rb +10 -0
  14. data/lib/kosmos/packages/active_texture_management.rb +20 -0
  15. data/lib/kosmos/packages/astronomers_visual_pack.rb +54 -0
  16. data/lib/kosmos/packages/b9_aerospace_pack.rb +22 -0
  17. data/lib/kosmos/packages/better_atmospheres.rb +41 -0
  18. data/lib/kosmos/packages/cacteye.rb +10 -0
  19. data/lib/kosmos/packages/deadly_reentry.rb +9 -0
  20. data/lib/kosmos/packages/distant_object_enhancement.rb +8 -0
  21. data/lib/kosmos/packages/docking_port_alignment_indicator.rb +8 -0
  22. data/lib/kosmos/packages/enhanced_navball.rb +8 -0
  23. data/lib/kosmos/packages/environmental_visual_enhancements.rb +22 -0
  24. data/lib/kosmos/packages/ferram_aerospace_research.rb +11 -0
  25. data/lib/kosmos/packages/firespitter.rb +8 -0
  26. data/lib/kosmos/packages/hot_rockets.rb +11 -0
  27. data/lib/kosmos/packages/infernal_robotics.rb +8 -0
  28. data/lib/kosmos/packages/kerbal_alarm_clock.rb +8 -0
  29. data/lib/kosmos/packages/kerbal_attachment_system.rb +9 -0
  30. data/lib/kosmos/packages/kerbal_engineer_redux.rb +8 -0
  31. data/lib/kosmos/packages/kerbal_joint_reinforcement.rb +8 -0
  32. data/lib/kosmos/packages/kethane_pack.rb +9 -0
  33. data/lib/kosmos/packages/ksp_interstellar.rb +10 -0
  34. data/lib/kosmos/packages/kw_rocketry.rb +8 -0
  35. data/lib/kosmos/packages/mechjeb.rb +8 -0
  36. data/lib/kosmos/packages/mk2_cockpit_interior.rb +8 -0
  37. data/lib/kosmos/packages/nova_punch.rb +10 -0
  38. data/lib/kosmos/packages/procedural_fairings.rb +8 -0
  39. data/lib/kosmos/packages/real_chute.rb +9 -0
  40. data/lib/kosmos/packages/remote_tech.rb +18 -0
  41. data/lib/kosmos/packages/safe_chute.rb +8 -0
  42. data/lib/kosmos/packages/scansat.rb +8 -0
  43. data/lib/kosmos/packages/spaceplane_plus.rb +9 -0
  44. data/lib/kosmos/packages/tac_fuel_balancer.rb +8 -0
  45. data/lib/kosmos/packages/tac_life_support.rb +9 -0
  46. data/lib/kosmos/packages/toolbar.rb +9 -0
  47. data/lib/kosmos/packages/vanguard_technologies.rb +18 -0
  48. data/lib/kosmos/page_fetcher.js +47 -0
  49. data/lib/kosmos/post_processors/module_manager_resolver.rb +30 -0
  50. data/lib/kosmos/util.rb +7 -0
  51. data/lib/kosmos/version.rb +3 -0
  52. data/lib/kosmos/versioner.rb +65 -0
  53. data/spec/download_url_spec.rb +64 -0
  54. data/spec/fixtures/example_box.html +165 -0
  55. data/spec/fixtures/example_dropbox.html +114 -0
  56. data/spec/fixtures/example_mediafire.html +101 -0
  57. data/spec/package_spec.rb +77 -0
  58. data/spec/spec_helper.rb +22 -0
  59. data/spec/versioner_spec.rb +87 -0
  60. metadata +166 -0
@@ -0,0 +1,10 @@
1
+ module Kosmos
2
+ module PackageDsl
3
+ def merge_directory(from, opts = {})
4
+ destination = opts[:into] || '.'
5
+
6
+ FileUtils.cp_r(File.join(@download_dir, from),
7
+ File.join(@ksp_path, destination))
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,20 @@
1
+ class ActiveTextureManagementBasic < Kosmos::Package
2
+ title 'Active Texture Management - Basic'
3
+ aliases 'Active Texture Management'
4
+
5
+ url 'https://github.com/rbray89/ActiveTextureManagement/releases/download/3-1-basic/ActiveTextureManagement-Basic-3-1.zip'
6
+
7
+ def install
8
+ merge_directory 'GameData'
9
+ end
10
+ end
11
+
12
+ class ActiveTextureManagementAggressive < Kosmos::Package
13
+ title 'Active Texture Management - Aggressive'
14
+
15
+ url 'https://github.com/rbray89/ActiveTextureManagement/releases/download/3-1-aggressive/ActiveTextureManagement-3-1.zip'
16
+
17
+ def install
18
+ merge_directory 'GameData'
19
+ end
20
+ end
@@ -0,0 +1,54 @@
1
+ class AstronomersVisualPackLow < Kosmos::Package
2
+ title 'Astronomer\'s Visual Pack - Lower Resolution'
3
+ aliases 'astronomers visual pack - low res'
4
+ url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
5
+
6
+ def install
7
+ merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/128 - Lower Resolution/GameData"
8
+ merge_directory "Astronomer's Visual Pack V3 BETA/3rd Step/GameData"
9
+ end
10
+ end
11
+
12
+ class AstronomersVisualPackDefault < Kosmos::Package
13
+ title 'Astronomer\'s Visual Pack - Default Resolution'
14
+ aliases 'astronomers visual pack - default res', 'astronomers visual pack'
15
+ url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
16
+
17
+ def install
18
+ merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/256 - Default Resolution/GameData"
19
+ merge_directory "Astronomer's Visual Pack V3 BETA/3rd Step/GameData"
20
+ end
21
+ end
22
+
23
+ class AstronomersVisualPackHigher < Kosmos::Package
24
+ title 'Astronomer\'s Visual Pack - Higher Resolution'
25
+ aliases 'astronomers visual pack - higher res'
26
+ url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
27
+
28
+ def install
29
+ merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/512 - Higher Resolution (recommended)/GameData"
30
+ merge_directory "Astronomer's Visual Pack V3 BETA/3rd Step/GameData"
31
+ end
32
+ end
33
+
34
+ class AstronomersVisualPackHigh < Kosmos::Package
35
+ title 'Astronomer\'s Visual Pack - High Resolution'
36
+ aliases 'astronomers visual pack - high res'
37
+ url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
38
+
39
+ def install
40
+ merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/1024 - High Resolution/GameData"
41
+ merge_directory "Astronomer's Visual Pack V3 BETA/3rd Step/GameData"
42
+ end
43
+ end
44
+
45
+ class AstronomersVisualPackPushIt < Kosmos::Package
46
+ title 'Astronomer\'s Visual Pack - Push It To The Limit Resolution'
47
+ aliases 'astronomers visual pack - push it to the limit res'
48
+ url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
49
+
50
+ def install
51
+ merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/1500 - PushItToTheLimit Resolution/GameData"
52
+ merge_directory "Astronomer's Visual Pack V3 BETA/3rd Step/GameData"
53
+ end
54
+ end
@@ -0,0 +1,22 @@
1
+ class B9AerospacePack < Kosmos::Package
2
+ title 'B9 Aerospace Pack'
3
+ aliases 'b9', 'b9 aerospace'
4
+
5
+ url 'http://www.mediafire.com/download/o6cbe03iitggj1p/B9+Aerospace+Pack+R4.0c.zip'
6
+
7
+ def install
8
+ merge_directory 'GameData'
9
+ merge_directory 'Ships'
10
+ end
11
+ end
12
+
13
+ class B9Aerospace0235Fix < Kosmos::Package
14
+ title 'B9 Aerospace Pack - Fix for KSP 0.23.5'
15
+ aliases 'b9 fix', 'b9 0.23.5 fix'
16
+
17
+ url 'https://www.dropbox.com/s/8bjgxv65yshg2z3/B9%20KSP%200.23.5.zip'
18
+
19
+ def install
20
+ merge_directory 'B9 KSP 0.23.5/GameData'
21
+ end
22
+ end
@@ -0,0 +1,41 @@
1
+ class BetterAtmospheresLowDef < Kosmos::Package
2
+ title 'Better Atmospheres - Low Definition (512 x 512)'
3
+ aliases 'better atmospheres - low def'
4
+ url 'https://www.dropbox.com/s/od4kickxt92jpo2/BetterAtmosphereV4%5BREL%5D.zip'
5
+
6
+ def install
7
+ merge_directory 'GameData'
8
+ merge_directory 'City Textures/512/DetailCity.tga',
9
+ into: 'GameData/BoulderCo/CityLights/Textures'
10
+ merge_directory 'City Textures/512/detail.tga',
11
+ into: 'GameData/BoulderCo/Clouds/Textures'
12
+ end
13
+ end
14
+
15
+ class BetterAtmospheresMediumDef < Kosmos::Package
16
+ title 'Better Atmospheres - Medium Definition (1024 x 1024)'
17
+ aliases 'better atmospheres - medium def', 'better atmospheres'
18
+ url 'https://www.dropbox.com/s/od4kickxt92jpo2/BetterAtmosphereV4%5BREL%5D.zip'
19
+
20
+ def install
21
+ merge_directory 'GameData'
22
+ merge_directory 'City Textures/1024/DetailCity.tga',
23
+ into: 'GameData/BoulderCo/CityLights/Textures'
24
+ merge_directory 'City Textures/1024/detail.tga',
25
+ into: 'GameData/BoulderCo/Clouds/Textures'
26
+ end
27
+ end
28
+
29
+ class BetterAtmospheresHighDef < Kosmos::Package
30
+ title 'Better Atmospheres - High Definition (2048 x 2048)'
31
+ aliases 'better atmospheres - high def'
32
+ url 'https://www.dropbox.com/s/od4kickxt92jpo2/BetterAtmosphereV4%5BREL%5D.zip'
33
+
34
+ def install
35
+ merge_directory 'GameData'
36
+ merge_directory 'City Textures/2048/DetailCity.tga',
37
+ into: 'GameData/BoulderCo/CityLights/Textures'
38
+ merge_directory 'City Textures/2048/detail.tga',
39
+ into: 'GameData/BoulderCo/Clouds/Textures'
40
+ end
41
+ end
@@ -0,0 +1,10 @@
1
+ class Cacteye < Kosmos::Package
2
+ title 'CactEye Telescope'
3
+ aliases 'cacteye'
4
+ url 'https://app.box.com/s/89skim2e3simjwmuof4c'
5
+
6
+ def install
7
+ merge_directory 'GameData'
8
+ merge_directory 'Ships'
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ class DeadlyReentry < Kosmos::Package
2
+ title 'Deadly Reentry'
3
+ url 'https://github.com/NathanKell/DeadlyReentry/releases/download/v4.7/DeadlyReentryCont_v4.7.zip'
4
+
5
+ def install
6
+ merge_directory 'DeadlyReentry', into: 'GameData'
7
+ merge_directory 'ModuleManager.2.1.0.dll', into: 'GameData'
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ class DistantObjectEnhancement < Kosmos::Package
2
+ title 'Distant Object Enhancement'
3
+ url 'https://app.box.com/s/7xdwo92oc00dkjxkilwb'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class DockingPortAlignmentIndicator < Kosmos::Package
2
+ title 'Docking Port Alignment Indicator'
3
+ url 'http://kerbal.curseforge.com/plugins/220299-docking-port-alignment-indicator-version-3-1'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class EnhancedNavball < Kosmos::Package
2
+ title 'Enhanced Navball'
3
+ url 'http://kerbal.curseforge.com/plugins/220469-enhanced-navball-v1-2'
4
+
5
+ def install
6
+ merge_directory 'EnhancedNavBall/Plugins'
7
+ end
8
+ end
@@ -0,0 +1,22 @@
1
+ class EnvironmentalVisualEnhancementsHighRes < Kosmos::Package
2
+ title 'Environmental Visual Enhancements - High Resolution'
3
+ aliases 'environmental visual enhancements - high res',
4
+ 'environmental visual enhancements'
5
+
6
+ url 'https://github.com/rbray89/EnvironmentalVisualEnhancements/releases/download/Release-7-3/EnvironmentalVisualEnhancements-7-3.zip'
7
+
8
+ def install
9
+ merge_directory 'GameData'
10
+ end
11
+ end
12
+
13
+ class EnvironmentalVisualEnhancementsLowRes < Kosmos::Package
14
+ title 'Environmental Visual Enhancements - Low Resolution'
15
+ aliases 'environmental visual enhancements - low res'
16
+
17
+ url 'https://github.com/rbray89/EnvironmentalVisualEnhancements/releases/download/Release-7-3LR/EnvironmentalVisualEnhancements-7-3-LR.zip'
18
+
19
+ def install
20
+ merge_directory 'GameData'
21
+ end
22
+ end
@@ -0,0 +1,11 @@
1
+ class FerramAerospaceResearch < Kosmos::Package
2
+ title 'Ferram Aerospace Research'
3
+ aliases 'ferram', 'far', 'ferram aerospace'
4
+
5
+ url 'https://github.com/ferram4/Ferram-Aerospace-Research/releases/download/v0.13.3/FerramAerospaceResearch_v0_13_3.zip'
6
+
7
+ def install
8
+ merge_directory 'GameData'
9
+ merge_directory 'Ships'
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ class Firespitter < Kosmos::Package
2
+ title 'Firespitter'
3
+ url 'http://kerbal.curseforge.com/parts/220252-firespitter'
4
+
5
+ def install
6
+ merge_directory '.', into: 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ class HotRockets < Kosmos::Package
2
+ title 'HotRockets'
3
+ aliases 'hot rockets'
4
+ url 'http://kerbal.curseforge.com/plugins/220207-hotrockets-particle-fx-replacement'
5
+
6
+ def install
7
+ merge_directory 'ModuleManager.2.1.0.dll', into: 'GameData'
8
+ merge_directory 'MP_Nazari', into: 'GameData'
9
+ merge_directory 'SmokeScreen', into: 'GameData'
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ class InfernalRobotics < Kosmos::Package
2
+ title 'Infernal Robotics'
3
+ url 'http://www.mediafire.com/download/s2dt1etqquxti17/InfernalRobotics0.15d.zip'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class KerbalAlarmClock < Kosmos::Package
2
+ title 'Kerbal Alarm Clock'
3
+ url 'https://github.com/TriggerAu/KerbalAlarmClock/releases/download/v2.7.3.0/KerbalAlarmClock_2.7.3.0.zip'
4
+
5
+ def install
6
+ merge_directory 'KerbalAlarmClock_2.7.3.0/GameData'
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ class KerbalAttachmentSystem < Kosmos::Package
2
+ title 'Kerbal Attachment System'
3
+ aliases 'kas'
4
+ url 'http://kerbalspaceport.com/wp/wp-content/themes/kerbal/inc/download.php?f=uploads/2014/04/KAS_v0.4.7.zip'
5
+
6
+ def install
7
+ merge_directory 'GameData'
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ class KerbalEngineerRedux < Kosmos::Package
2
+ title 'Kerbal Engineer Redux'
3
+ url 'http://kerbal.curseforge.com/plugins/220285-kerbal-engineer-redux'
4
+
5
+ def install
6
+ merge_directory 'Engineer', into: 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class KerbalJointReinforcement < Kosmos::Package
2
+ title 'Kerbal Joint Reinforcement'
3
+ url 'http://www.mediafire.com/download/yvi7o1t6a36m5hk/KerbalJointReinforcement_v2.3.zip'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ class KethanePack < Kosmos::Package
2
+ title 'Kethane Pack'
3
+ aliases 'kethane'
4
+ url 'https://nabaal.net/files/kethane/Kethane-0.8.5.zip'
5
+
6
+ def install
7
+ merge_directory 'GameData'
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ class KSPInterstellar < Kosmos::Package
2
+ title 'KSP Interstellar'
3
+ aliases 'interstellar'
4
+
5
+ url 'https://bitbucket.org/FractalUK/kspinstellar/downloads/KSPInterstellar-v0.11.zip'
6
+
7
+ def install
8
+ merge_directory 'GameData'
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ class KWRocketry < Kosmos::Package
2
+ title 'KW Rocketry'
3
+ url 'http://www.mediafire.com/download/hxt2kfpctmcmt56/KW+Release+Package+v2.5.6B.zip'
4
+
5
+ def install
6
+ merge_directory 'KW Release Package v2.5.6B/GameData'
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class MechJeb < Kosmos::Package
2
+ title 'MechJeb'
3
+ url 'http://kerbal.curseforge.com/plugins/220221-mechjeb'
4
+
5
+ def install
6
+ merge_directory 'MechJeb2', into: 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class Mk2CockpitInterior < Kosmos::Package
2
+ title 'Mk2 Cockpit Interior'
3
+ url 'http://kerbalspaceport.com/wp/wp-content/themes/kerbal/inc/download.php?f=uploads/2013/12/SH-MK2Cockpit.zip'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ class NovaPunch < Kosmos::Package
2
+ title 'NovaPunch'
3
+ aliases 'nova-punch'
4
+ url 'http://www.mediafire.com/download/f79630tg10j20b9/NovaPunch2_04.zip'
5
+
6
+ def install
7
+ merge_directory 'GameData'
8
+ merge_directory 'Ships'
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ class ProceduralFairings < Kosmos::Package
2
+ title 'Procedural Fairings'
3
+ url 'https://github.com/e-dog/ProceduralFairings/releases/download/v3.02/ProcFairings_3.02.zip'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ class RealChute < Kosmos::Package
2
+ title 'RealChute Parachute Systems'
3
+ aliases 'realchute', 'real chute'
4
+ url 'http://www.mediafire.com/download/5o7mc1cv25wtqkz/RealChute+v1.1.0.1.zip'
5
+
6
+ def install
7
+ merge_directory 'GameData'
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ class RemoteTech2 < Kosmos::Package
2
+ title 'Remote Tech 2'
3
+ url 'http://kerbalspaceport.com/wp/wp-content/themes/kerbal/inc/download.php?f=uploads/2013/12/RemoteTech2_Release_1.3.3.zip'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
9
+
10
+ class RemoteTech2Fixpack < Kosmos::Package
11
+ title 'Remote Tech 2 - Fixpack for KSP 0.23.5'
12
+ aliases 'remote tech 2 fixpack'
13
+ url 'http://www.mediafire.com/download/dncc8qu44t30a90/RemoteTech2_2014.01.08.22.30.zip'
14
+
15
+ def install
16
+ merge_directory 'GameData'
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ class SafeChute < Kosmos::Package
2
+ title 'Safe Chute'
3
+ url 'http://genesisrage.net/ksp/SafeChute.zip'
4
+
5
+ def install
6
+ merge_directory 'GameData'
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class Scansat < Kosmos::Package
2
+ title 'SCANSat'
3
+ url 'http://github.com/thatfool/SCAN/releases/download/build5/SCANsat_b5.zip'
4
+
5
+ def install
6
+ merge_directory 'SCANsat', into: 'GameData'
7
+ end
8
+ end