kosmos 0.0.1 → 0.0.2.pre.test2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/README.md +109 -8
- data/bin/kosmos +6 -79
- data/kosmos.gemspec +4 -1
- data/lib/kosmos.rb +18 -4
- data/lib/kosmos/download_url.rb +4 -0
- data/lib/kosmos/git_adapter.rb +5 -3
- data/lib/kosmos/package.rb +41 -57
- data/lib/kosmos/package_attrs.rb +79 -0
- data/lib/kosmos/package_downloads.rb +80 -0
- data/lib/kosmos/packages/achievements.rb +8 -0
- data/lib/kosmos/packages/active_texture_management.rb +1 -1
- data/lib/kosmos/packages/advanced_animator.rb +9 -0
- data/lib/kosmos/packages/advanced_jet_engine.rb +9 -0
- data/lib/kosmos/packages/aerojet_kerbodyne.rb +9 -0
- data/lib/kosmos/packages/aies_aerospace.rb +9 -0
- data/lib/kosmos/packages/ambient_light_adjustment.rb +9 -0
- data/lib/kosmos/packages/amok_dynamics.rb +9 -0
- data/lib/kosmos/packages/antenna_range.rb +10 -0
- data/lib/kosmos/packages/asmis_eclss_mod.rb +9 -0
- data/lib/kosmos/packages/astronomers_visual_pack.rb +5 -0
- data/lib/kosmos/packages/atmospheric_sound_enhancement.rb +9 -0
- data/lib/kosmos/packages/auto_asparagus.rb +9 -0
- data/lib/kosmos/packages/aviation_lights.rb +9 -0
- data/lib/kosmos/packages/b9_aerospace_pack.rb +11 -0
- data/lib/kosmos/packages/b9_cockpit_extended.rb +9 -0
- data/lib/kosmos/packages/b9_iva_extension.rb +9 -0
- data/lib/kosmos/packages/baha_extraplanetary_parts.rb +9 -0
- data/lib/kosmos/packages/better_rove_mates.rb +9 -0
- data/lib/kosmos/packages/better_than_starting_manned.rb +9 -0
- data/lib/kosmos/packages/bob_catind_soviet_american_packs.rb +10 -0
- data/lib/kosmos/packages/bolt_on_mission_probe.rb +9 -0
- data/lib/kosmos/packages/cargo_transfer_bagsand_tanks.rb +9 -0
- data/lib/kosmos/packages/celestial_body_science_multiplier_editor.rb +9 -0
- data/lib/kosmos/packages/celss_greenhouse.rb +9 -0
- data/lib/kosmos/packages/chatterer.rb +9 -0
- data/lib/kosmos/packages/coffee_industries_modular_airliner.rb +9 -0
- data/lib/kosmos/packages/conics_configurator.rb +9 -0
- data/lib/kosmos/packages/connected_living_space_api.rb +9 -0
- data/lib/kosmos/packages/constellation_essentials.rb +9 -0
- data/lib/kosmos/packages/cross_feed_enabler.rb +9 -0
- data/lib/kosmos/packages/custom_asteroids.rb +9 -0
- data/lib/kosmos/packages/dang_it.rb +9 -0
- data/lib/kosmos/packages/dark_multi_player.rb +10 -0
- data/lib/kosmos/packages/davon_supply.rb +9 -0
- data/lib/kosmos/packages/davon_throttle_controlsystems.rb +9 -0
- data/lib/kosmos/packages/dmagic_orbital_science.rb +9 -0
- data/lib/kosmos/packages/down_under_aerospace.rb +9 -0
- data/lib/kosmos/packages/editor_extensions.rb +9 -0
- data/lib/kosmos/packages/editor_part_highlighter.rb +9 -0
- data/lib/kosmos/packages/engine_ignitor.rb +9 -0
- data/lib/kosmos/packages/fasa.rb +18 -0
- data/lib/kosmos/packages/flight_managerfor_reusable_stages.rb +9 -0
- data/lib/kosmos/packages/fus_tek_station_parts.rb +9 -0
- data/lib/kosmos/packages/fusebox.rb +9 -0
- data/lib/kosmos/packages/gimbal_auto_trim.rb +9 -0
- data/lib/kosmos/packages/ginger_corp_station_hubs.rb +9 -0
- data/lib/kosmos/packages/glow_strips.rb +9 -0
- data/lib/kosmos/packages/habitat_pack.rb +9 -0
- data/lib/kosmos/packages/hangar_extender.rb +9 -0
- data/lib/kosmos/packages/home_grown_rockets.rb +10 -0
- data/lib/kosmos/packages/hooligan_labs.rb +26 -0
- data/lib/kosmos/packages/hullcam_vds.rb +8 -0
- data/lib/kosmos/packages/kerbal_attachment_system.rb +1 -1
- data/lib/kosmos/packages/kerbal_engineer_redux.rb +11 -0
- data/lib/kosmos/packages/launch_countdown.rb +9 -0
- data/lib/kosmos/packages/remote_tech.rb +1 -11
- data/lib/kosmos/packages/void.rb +9 -0
- data/lib/kosmos/user_interface.rb +120 -0
- data/lib/kosmos/util.rb +5 -1
- data/lib/kosmos/version.rb +1 -1
- data/lib/kosmos/versioner.rb +3 -3
- data/lib/kosmos/web/app.rb +36 -0
- data/lib/kosmos/web/public/css/main.css +69 -0
- data/lib/kosmos/web/public/css/normalize.css +527 -0
- data/lib/kosmos/web/public/index.html +107 -0
- data/lib/kosmos/web/public/js/main.js +125 -0
- data/lib/kosmos/web/public/js/plugins.js +24 -0
- data/lib/kosmos/web/public/js/vendor/jquery-1.10.2.min.js +6 -0
- data/lib/kosmos/web/public/js/vendor/modernizr-2.6.2.min.js +4 -0
- data/lib/kosmos/web/public/js/vendor/underscore.js +5 -0
- data/package_generator.rb +197 -0
- data/spec/package_spec.rb +32 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/versioner_spec.rb +2 -21
- metadata +113 -6
@@ -0,0 +1,79 @@
|
|
1
|
+
module Kosmos
|
2
|
+
module PackageAttrs
|
3
|
+
private
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(Methods)
|
7
|
+
base.send(:include, Methods)
|
8
|
+
end
|
9
|
+
|
10
|
+
module Methods
|
11
|
+
def title(title = nil)
|
12
|
+
if title
|
13
|
+
@title = title
|
14
|
+
else
|
15
|
+
@title
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def url(url = nil)
|
20
|
+
if url
|
21
|
+
@url = url
|
22
|
+
else
|
23
|
+
@url
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def aliases(*aliases)
|
28
|
+
@aliases ||= []
|
29
|
+
|
30
|
+
if aliases.any?
|
31
|
+
@aliases = aliases
|
32
|
+
else
|
33
|
+
@aliases
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def names
|
38
|
+
[title, aliases].flatten
|
39
|
+
end
|
40
|
+
|
41
|
+
def prerequisites(*prerequisites)
|
42
|
+
@prerequisites ||= []
|
43
|
+
|
44
|
+
if prerequisites.any?
|
45
|
+
@prerequisites = prerequisites
|
46
|
+
else
|
47
|
+
@prerequisites
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
alias_method :prerequiste, :prerequisites
|
52
|
+
alias_method :pre_requisite, :prerequisites
|
53
|
+
alias_method :pre_requisites, :prerequisites
|
54
|
+
|
55
|
+
def postrequisites(*postrequisites)
|
56
|
+
@postrequisites ||= []
|
57
|
+
|
58
|
+
if postrequisites.any?
|
59
|
+
@postrequisites = postrequisites
|
60
|
+
else
|
61
|
+
@postrequisites
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
alias_method :postrequiste, :postrequisites
|
66
|
+
alias_method :post_requisite, :postrequisites
|
67
|
+
alias_method :post_requisites, :postrequisites
|
68
|
+
|
69
|
+
def resolve_prerequisites
|
70
|
+
prerequisites.map { |package_name| find(package_name) }
|
71
|
+
end
|
72
|
+
|
73
|
+
def resolve_postrequisites
|
74
|
+
postrequisites.map { |package_name| find(package_name) }
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Kosmos
|
2
|
+
module PackageDownloads
|
3
|
+
# Downloads and unzips a package. This will call #download! on its own, and
|
4
|
+
# will return the location where the package was downloaded to as a
|
5
|
+
# Pathname.
|
6
|
+
def self.download_and_unzip_package(package, opts = {})
|
7
|
+
download_file = download_package(package, opts)
|
8
|
+
|
9
|
+
Util.log "Unzipping ..."
|
10
|
+
|
11
|
+
output_path = Pathname.new(download_file.path).parent.to_s
|
12
|
+
|
13
|
+
Zip::File.open(download_file.path) do |zip_file|
|
14
|
+
zip_file.each do |entry|
|
15
|
+
destination = File.join(output_path, entry.name)
|
16
|
+
parent_dir = File.expand_path('..', destination)
|
17
|
+
|
18
|
+
FileUtils.mkdir_p(parent_dir) unless File.exists?(parent_dir)
|
19
|
+
|
20
|
+
entry.extract(destination)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
File.delete(File.absolute_path(download_file))
|
25
|
+
|
26
|
+
output_path
|
27
|
+
end
|
28
|
+
|
29
|
+
# Downloads the zipfile for a package using its URL, unless a cached version
|
30
|
+
# is found first. Uses DownloadUrl to intelligently resolve download URLs.
|
31
|
+
#
|
32
|
+
# Returns the file downloaded, which is created in a temp directory.
|
33
|
+
def self.download_package(package, opts = {})
|
34
|
+
cached_download = download_from_cache(package)
|
35
|
+
downloaded_file = if cached_download
|
36
|
+
Util.log "Use a cached version of #{package.title} ..."
|
37
|
+
cached_download
|
38
|
+
else
|
39
|
+
Util.log "The package is found at #{package.url}. "\
|
40
|
+
"Finding the download URL ..."
|
41
|
+
download_url = DownloadUrl.new(package.url).resolve_download_url
|
42
|
+
|
43
|
+
Util.log "Found it. Downloading from #{download_url} ..."
|
44
|
+
HTTParty.get(download_url)
|
45
|
+
end
|
46
|
+
|
47
|
+
save_to_cache(package, downloaded_file) if opts[:cache_after_download]
|
48
|
+
|
49
|
+
tmpdir = Dir.mktmpdir
|
50
|
+
|
51
|
+
download_file = File.new(File.join(tmpdir, 'download'), 'w+')
|
52
|
+
download_file.write(downloaded_file)
|
53
|
+
download_file.close
|
54
|
+
|
55
|
+
download_file
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def self.download_from_cache(package)
|
61
|
+
cache_dir = Kosmos.cache_dir
|
62
|
+
if cache_dir
|
63
|
+
cached_download = File.join(cache_dir, "#{package.title}.zip")
|
64
|
+
|
65
|
+
File.read(cached_download) if File.file?(cached_download)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.save_to_cache(package, downloaded_file)
|
70
|
+
Util.log "Saving #{package.title} to cache ..."
|
71
|
+
|
72
|
+
cache_dir = Kosmos.cache_dir
|
73
|
+
if cache_dir
|
74
|
+
File.open(File.join(cache_dir, "#{package.title}.zip"), 'w') do |file|
|
75
|
+
file.write(downloaded_file)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
class ActiveTextureManagementBasic < Kosmos::Package
|
2
2
|
title 'Active Texture Management - Basic'
|
3
|
-
aliases 'Active Texture Management'
|
4
3
|
|
5
4
|
url 'https://github.com/rbray89/ActiveTextureManagement/releases/download/3-1-basic/ActiveTextureManagement-Basic-3-1.zip'
|
6
5
|
|
@@ -11,6 +10,7 @@ end
|
|
11
10
|
|
12
11
|
class ActiveTextureManagementAggressive < Kosmos::Package
|
13
12
|
title 'Active Texture Management - Aggressive'
|
13
|
+
aliases 'Active Texture Management'
|
14
14
|
|
15
15
|
url 'https://github.com/rbray89/ActiveTextureManagement/releases/download/3-1-aggressive/ActiveTextureManagement-3-1.zip'
|
16
16
|
|
@@ -2,6 +2,7 @@ class AstronomersVisualPackLow < Kosmos::Package
|
|
2
2
|
title 'Astronomer\'s Visual Pack - Lower Resolution'
|
3
3
|
aliases 'astronomers visual pack - low res'
|
4
4
|
url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
|
5
|
+
prerequisites 'environmental visual enhancements'
|
5
6
|
|
6
7
|
def install
|
7
8
|
merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/128 - Lower Resolution/GameData"
|
@@ -13,6 +14,7 @@ class AstronomersVisualPackDefault < Kosmos::Package
|
|
13
14
|
title 'Astronomer\'s Visual Pack - Default Resolution'
|
14
15
|
aliases 'astronomers visual pack - default res', 'astronomers visual pack'
|
15
16
|
url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
|
17
|
+
prerequisites 'environmental visual enhancements'
|
16
18
|
|
17
19
|
def install
|
18
20
|
merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/256 - Default Resolution/GameData"
|
@@ -24,6 +26,7 @@ class AstronomersVisualPackHigher < Kosmos::Package
|
|
24
26
|
title 'Astronomer\'s Visual Pack - Higher Resolution'
|
25
27
|
aliases 'astronomers visual pack - higher res'
|
26
28
|
url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
|
29
|
+
prerequisites 'environmental visual enhancements'
|
27
30
|
|
28
31
|
def install
|
29
32
|
merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/512 - Higher Resolution (recommended)/GameData"
|
@@ -35,6 +38,7 @@ class AstronomersVisualPackHigh < Kosmos::Package
|
|
35
38
|
title 'Astronomer\'s Visual Pack - High Resolution'
|
36
39
|
aliases 'astronomers visual pack - high res'
|
37
40
|
url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
|
41
|
+
prerequisites 'environmental visual enhancements'
|
38
42
|
|
39
43
|
def install
|
40
44
|
merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/1024 - High Resolution/GameData"
|
@@ -46,6 +50,7 @@ class AstronomersVisualPackPushIt < Kosmos::Package
|
|
46
50
|
title 'Astronomer\'s Visual Pack - Push It To The Limit Resolution'
|
47
51
|
aliases 'astronomers visual pack - push it to the limit res'
|
48
52
|
url 'http://kerbal.curseforge.com/plugins/220335-astronomers-visual-pack-v3-beta'
|
53
|
+
prerequisites 'environmental visual enhancements'
|
49
54
|
|
50
55
|
def install
|
51
56
|
merge_directory "Astronomer's Visual Pack V3 BETA/2nd Step/1500 - PushItToTheLimit Resolution/GameData"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class B9AerospacePack < Kosmos::Package
|
2
2
|
title 'B9 Aerospace Pack'
|
3
3
|
aliases 'b9', 'b9 aerospace'
|
4
|
+
postrequisites 'b9 fix', 'b9 modzero'
|
4
5
|
|
5
6
|
url 'http://www.mediafire.com/download/o6cbe03iitggj1p/B9+Aerospace+Pack+R4.0c.zip'
|
6
7
|
|
@@ -20,3 +21,13 @@ class B9Aerospace0235Fix < Kosmos::Package
|
|
20
21
|
merge_directory 'B9 KSP 0.23.5/GameData'
|
21
22
|
end
|
22
23
|
end
|
24
|
+
|
25
|
+
class B9AerospaceModZeroFix < Kosmos::Package
|
26
|
+
title 'ModZero B9 Aerospace Fixes'
|
27
|
+
aliases 'b9 modzero fixes', 'b9 modzero'
|
28
|
+
url 'https://www.dropbox.com/s/peq187l1ajc3mst/ModZeroB9Fixes.zip'
|
29
|
+
|
30
|
+
def install
|
31
|
+
merge_directory 'GameData'
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class BobCatindSovietAmericanPacks < Kosmos::Package
|
2
|
+
title 'BobCat Ind Soviet-American Packs'
|
3
|
+
url 'http://www.mediafire.com/?v75377195a0qhhv'
|
4
|
+
|
5
|
+
def install
|
6
|
+
merge_directory 'Soviet Pack ver1.9.1b/GameData'
|
7
|
+
merge_directory 'Soviet Pack ver1.9.1b/Ships'
|
8
|
+
merge_directory 'Soviet Pack ver1.9.1b/Subassemblies'
|
9
|
+
end
|
10
|
+
end
|