kosmos 0.0.1 → 0.0.2.pre.test2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|