kosmos 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -0
- data/lib/kosmos/download_url.rb +1 -1
- data/lib/kosmos/git_adapter.rb +2 -3
- data/lib/kosmos/package.rb +8 -4
- data/lib/kosmos/packages/auto_unlock_part_models.rb +9 -0
- data/lib/kosmos/packages/better_atmospheres.rb +21 -18
- data/lib/kosmos/packages/cool_rockets.rb +8 -0
- data/lib/kosmos/packages/eclss.rb +9 -0
- data/lib/kosmos/packages/improved_chase_camera.rb +8 -0
- data/lib/kosmos/packages/kspx.rb +9 -0
- data/lib/kosmos/packages/mk2_cockpit_interior.rb +1 -1
- data/lib/kosmos/packages/modular_fuel_tanks.rb +10 -0
- data/lib/kosmos/packages/module_manager.rb +9 -0
- data/lib/kosmos/packages/near_future_propulsion.rb +19 -0
- data/lib/kosmos/packages/part_catalog.rb +9 -0
- data/lib/kosmos/packages/planetary_editing_tools.rb +8 -0
- data/lib/kosmos/packages/service_compartment_tubes.rb +11 -0
- data/lib/kosmos/packages/texture_replacer.rb +8 -0
- data/lib/kosmos/packages/tweak_scale.rb +9 -0
- data/lib/kosmos/packages/tweakable_everything.rb +8 -0
- data/lib/kosmos/user_interface.rb +52 -4
- data/lib/kosmos/version.rb +1 -1
- data/lib/kosmos/web/app.rb +3 -1
- data/spec/download_url_spec.rb +6 -1
- data/spec/fixtures/{example_dropbox.html → example_dropbox.com.html} +0 -0
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 206f08523e2051ce2a37fa573f4143429a61a60f
|
4
|
+
data.tar.gz: 8e4c688da2228e573ca02f16f3d56119a47b2ac0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e97dbae4d79c716b0152676b76f456c53ccce020e7e3183dc07f6ca4b1268e616377823a2247f7a27ac9cb80bbba8679613f8ab3dfce61171cbdce14ba4feed
|
7
|
+
data.tar.gz: ebc72b45645d2272591f3daa84a2ee66b8136f1ab03a3c62d42b090a041565304df78c334cba116d83decad04b370807be34ae1f7c21e49f1b693a98d9075e06
|
data/README.md
CHANGED
@@ -84,6 +84,24 @@ And it'll be ready to go.
|
|
84
84
|
|
85
85
|
## Usage
|
86
86
|
|
87
|
+
### First run
|
88
|
+
|
89
|
+
First, you have to point Kosmos to your Kerbal Space Program installation directory:
|
90
|
+
|
91
|
+
```
|
92
|
+
kosmos init "your-ksp-path"
|
93
|
+
```
|
94
|
+
`your-ksp-path` varies with the operating system and game installation.
|
95
|
+
For a Steam-installed game it should be:
|
96
|
+
|
97
|
+
* on OS X: `kosmos init "~/Library/Application Support/Steam/SteamApps/common/Kerbal Space Program/"`
|
98
|
+
* on Windows: `kosmos init "C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program"`
|
99
|
+
* on Linux: `kosmos init "~/Steam/SteamApps/common/Kerbal Space Program/"`
|
100
|
+
|
101
|
+
Then, Kosmos will be ready to use.
|
102
|
+
|
103
|
+
### Mod management
|
104
|
+
|
87
105
|
Install any command by running:
|
88
106
|
|
89
107
|
```
|
data/lib/kosmos/download_url.rb
CHANGED
data/lib/kosmos/git_adapter.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'shellwords'
|
2
|
-
|
3
1
|
module Kosmos
|
4
2
|
module GitAdapter
|
5
3
|
class << self
|
@@ -8,6 +6,7 @@ module Kosmos
|
|
8
6
|
`git init`
|
9
7
|
`git config user.name Kosmos`
|
10
8
|
`git config user.email kosmos@kosmos.kosmos`
|
9
|
+
`git config core.autocrlf false`
|
11
10
|
|
12
11
|
File.open('.gitignore', 'w') do |file|
|
13
12
|
file.write "!*\n"
|
@@ -18,7 +17,7 @@ module Kosmos
|
|
18
17
|
def commit_everything(repo_path, commit_message)
|
19
18
|
Dir.chdir(repo_path) do
|
20
19
|
`git add -A -f`
|
21
|
-
`git commit --allow-empty -m #{commit_message
|
20
|
+
`git commit --allow-empty -m "#{commit_message}"`
|
22
21
|
end
|
23
22
|
end
|
24
23
|
|
data/lib/kosmos/package.rb
CHANGED
@@ -78,15 +78,19 @@ module Kosmos
|
|
78
78
|
|
79
79
|
def install_prerequisites!
|
80
80
|
resolve_prerequisites.each do |package|
|
81
|
-
|
82
|
-
|
81
|
+
unless Versioner.installed_packages(ksp_path).include?(package.title)
|
82
|
+
Util.log "#{title} has prerequisite #{package.title}."
|
83
|
+
package.new.install!(ksp_path)
|
84
|
+
end
|
83
85
|
end
|
84
86
|
end
|
85
87
|
|
86
88
|
def install_postrequisites!
|
87
89
|
resolve_postrequisites.each do |package|
|
88
|
-
|
89
|
-
|
90
|
+
unless Versioner.installed_packages(ksp_path).include?(package.title)
|
91
|
+
Util.log "#{title} has postrequisite #{package.title}."
|
92
|
+
package.new.install!(ksp_path)
|
93
|
+
end
|
90
94
|
end
|
91
95
|
end
|
92
96
|
|
@@ -1,41 +1,44 @@
|
|
1
1
|
class BetterAtmospheresLowDef < Kosmos::Package
|
2
2
|
title 'Better Atmospheres - Low Definition (512 x 512)'
|
3
3
|
aliases 'better atmospheres - low def'
|
4
|
-
url 'https://www.dropbox.com/s/
|
4
|
+
url 'https://www.dropbox.com/s/ego5nirhdutj59l/Better%20Atmospheres%20V5%20Low%20Quality.zip'
|
5
|
+
prerequisites 'environmental-visual-enhancements', 'texture-replacer', 'custom-asteroids'
|
5
6
|
|
6
7
|
def install
|
7
|
-
merge_directory 'GameData'
|
8
|
-
merge_directory '
|
9
|
-
|
10
|
-
merge_directory '
|
11
|
-
|
8
|
+
merge_directory 'BoulderCo', into: 'GameData'
|
9
|
+
merge_directory 'CustomAsteroids', into: 'GameData'
|
10
|
+
merge_directory 'KittopiaSpace', into: 'GameData'
|
11
|
+
merge_directory 'RealSolarSystem', into: 'GameData'
|
12
|
+
merge_directory 'TextureReplacer', into: 'GameData'
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
15
16
|
class BetterAtmospheresMediumDef < Kosmos::Package
|
16
17
|
title 'Better Atmospheres - Medium Definition (1024 x 1024)'
|
17
18
|
aliases 'better atmospheres - medium def', 'better atmospheres'
|
18
|
-
url 'https://www.dropbox.com/s/
|
19
|
+
url 'https://www.dropbox.com/s/qyw3gcdfcocvrt7/Better%20Atmospheres%20V5%20Medium%20Res.zip'
|
20
|
+
prerequisites 'environmental-visual-enhancements', 'texture-replacer', 'custom-asteroids'
|
19
21
|
|
20
22
|
def install
|
21
|
-
merge_directory 'GameData'
|
22
|
-
merge_directory '
|
23
|
-
|
24
|
-
merge_directory '
|
25
|
-
|
23
|
+
merge_directory 'BoulderCo', into: 'GameData'
|
24
|
+
merge_directory 'CustomAsteroids', into: 'GameData'
|
25
|
+
merge_directory 'KittopiaSpace', into: 'GameData'
|
26
|
+
merge_directory 'RealSolarSystem', into: 'GameData'
|
27
|
+
merge_directory 'TextureReplacer', into: 'GameData'
|
26
28
|
end
|
27
29
|
end
|
28
30
|
|
29
31
|
class BetterAtmospheresHighDef < Kosmos::Package
|
30
32
|
title 'Better Atmospheres - High Definition (2048 x 2048)'
|
31
33
|
aliases 'better atmospheres - high def'
|
32
|
-
url 'https://www.dropbox.com/s/
|
34
|
+
url 'https://www.dropbox.com/s/mqw1rdc5p06mmsy/Better%20Atmospheres%20V5.zip'
|
35
|
+
prerequisites 'environmental-visual-enhancements', 'texture-replacer', 'custom-asteroids'
|
33
36
|
|
34
37
|
def install
|
35
|
-
merge_directory 'GameData'
|
36
|
-
merge_directory '
|
37
|
-
|
38
|
-
merge_directory '
|
39
|
-
|
38
|
+
merge_directory 'BoulderCo', into: 'GameData'
|
39
|
+
merge_directory 'CustomAsteroids', into: 'GameData'
|
40
|
+
merge_directory 'KittopiaSpace', into: 'GameData'
|
41
|
+
merge_directory 'RealSolarSystem', into: 'GameData'
|
42
|
+
merge_directory 'TextureReplacer', into: 'GameData'
|
40
43
|
end
|
41
44
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Mk2CockpitInterior < Kosmos::Package
|
2
2
|
title 'Mk2 Cockpit Interior'
|
3
|
-
url 'http://
|
3
|
+
url 'http://kerbal.curseforge.com/ksp-mods/220927-mk2-cockpit-internals'
|
4
4
|
|
5
5
|
def install
|
6
6
|
merge_directory 'GameData'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class ModuleManager < Kosmos::Package
|
2
|
+
title 'ModuleManager'
|
3
|
+
aliases 'module manager'
|
4
|
+
url 'https://ksp.sarbian.com/jenkins/job/ModuleManager/lastBuild/artifact/jenkins-ModuleManager-36/ModuleManager-2.1.5.zip'
|
5
|
+
|
6
|
+
def install
|
7
|
+
merge_directory 'ModuleManager.2.1.5.dll', into: 'GameData'
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class NearFuturePropulsion < Kosmos::Package
|
2
|
+
title 'Near Future Propulsion'
|
3
|
+
url 'https://nabaal.net/files/ksp/nertea/NearFuturePropulsion0_1_1.zip'
|
4
|
+
|
5
|
+
def install
|
6
|
+
merge_directory 'GameData'
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class NearFuturePropulsionLowDef < Kosmos::Package
|
11
|
+
title 'Near Future Propulsion - Low Definition (512 x 512)'
|
12
|
+
aliases 'near future propulsion - low def'
|
13
|
+
url 'https://nabaal.net/files/ksp/nertea/NearFuturePropulsion0_1_1.zip'
|
14
|
+
|
15
|
+
def install
|
16
|
+
merge_directory 'GameData'
|
17
|
+
merge_directory '_low/GameData/NearFuture', into: 'GameData'
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class ServiceCompartmentTubes < Kosmos::Package
|
2
|
+
title '6S Service Compartment Tubes'
|
3
|
+
aliases 'Service Compartment Tubes'
|
4
|
+
url 'http://kerbal.curseforge.com/parts/220359-s-service-compartment-tubes'
|
5
|
+
|
6
|
+
def install
|
7
|
+
merge_directory 'NothkeSerCom', into: 'GameData'
|
8
|
+
merge_directory 'Firespitter', into: 'GameData'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
@@ -8,7 +8,21 @@ module Kosmos
|
|
8
8
|
module UserInterface
|
9
9
|
class << self
|
10
10
|
def init(args)
|
11
|
-
ksp_path = args
|
11
|
+
ksp_path = extract_ksp_path_from_args(args)
|
12
|
+
|
13
|
+
unless ksp_path
|
14
|
+
Util.log <<-EOS.undent
|
15
|
+
Error: You did not specify what folder you keep KSP in.
|
16
|
+
|
17
|
+
Before doing anything else, please execute the command:
|
18
|
+
|
19
|
+
kosmos init ksp-folder
|
20
|
+
|
21
|
+
Where "ksp-folder" is the name of the folder where you keep KSP.
|
22
|
+
EOS
|
23
|
+
|
24
|
+
return
|
25
|
+
end
|
12
26
|
|
13
27
|
Util.log "Initializing Kosmos into #{ksp_path} (This will take a sec) ..."
|
14
28
|
|
@@ -60,13 +74,24 @@ module Kosmos
|
|
60
74
|
end
|
61
75
|
|
62
76
|
package = Kosmos::Package.find(package_name)
|
77
|
+
installed_packages = Kosmos::Versioner.installed_packages(ksp_path)
|
63
78
|
|
64
|
-
if package
|
79
|
+
if !package
|
80
|
+
Util.log "Error: Kosmos couldn't find any packages with the name #{package_name.inspect}."
|
81
|
+
elsif !installed_packages.include?(package.title)
|
82
|
+
Util.log <<-EOS.undent
|
83
|
+
Error: #{package.title} is not currently installed.
|
84
|
+
|
85
|
+
There are three reasons you may get this error:
|
86
|
+
|
87
|
+
1. You have already uninstalled #{package.title}.
|
88
|
+
2. You have never previously installed #{package.title}.
|
89
|
+
3. You did not use Kosmos to install #{package.title}.
|
90
|
+
EOS
|
91
|
+
else
|
65
92
|
Util.log "Preparing to uninstall #{package.title} ..."
|
66
93
|
Kosmos::Versioner.uninstall_package(ksp_path, package)
|
67
94
|
Util.log "Done! Just uninstalled: #{package.title}."
|
68
|
-
else
|
69
|
-
Util.log "Error: Kosmos couldn't find any packages with the name #{package_name.inspect}."
|
70
95
|
end
|
71
96
|
end
|
72
97
|
|
@@ -86,6 +111,29 @@ module Kosmos
|
|
86
111
|
|
87
112
|
private
|
88
113
|
|
114
|
+
# Extracts the path to init to from the user-supplied arguments. If the
|
115
|
+
# user passed arguments via the commandline, then spaces in paths are
|
116
|
+
# auto-handled beacuse they come from ARGV.
|
117
|
+
#
|
118
|
+
# If, however, the user passed arguments from the server, then these
|
119
|
+
# arguments will still be separated by spaces. This method will then re-
|
120
|
+
# join them.
|
121
|
+
def extract_ksp_path_from_args(args)
|
122
|
+
if args
|
123
|
+
path = args.join(' ')
|
124
|
+
|
125
|
+
# Trim leading quotation mark if any
|
126
|
+
path = path[1..-1] if path.start_with?('"')
|
127
|
+
path = path[0..-2] if path.end_with?('"')
|
128
|
+
|
129
|
+
if path.empty?
|
130
|
+
nil
|
131
|
+
else
|
132
|
+
path
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
89
137
|
def check_initialized!
|
90
138
|
if Kosmos.load_ksp_path
|
91
139
|
true
|
data/lib/kosmos/version.rb
CHANGED
data/lib/kosmos/web/app.rb
CHANGED
data/spec/download_url_spec.rb
CHANGED
@@ -34,12 +34,17 @@ describe Kosmos::DownloadUrl do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'correctly resolves dropbox download urls' do
|
37
|
-
url = 'file://' + File.absolute_path('spec/fixtures/example_dropbox.html')
|
37
|
+
url = 'file://' + File.absolute_path('spec/fixtures/example_dropbox.com.html')
|
38
38
|
target_url = 'https://dl.dropboxusercontent.com/s/od4kickxt92jpo2/BetterAtmosphereV4%5BREL%5D.zip?dl=1&token_hash=AAFn5emxuVXLw_RfjDgQs0Hn7-YZ-vejn3m8zLgOj2tTFA&expiry=1401095304'
|
39
39
|
|
40
40
|
expect(Kosmos::DownloadUrl.new(url).resolve_download_url).to eq target_url
|
41
41
|
end
|
42
42
|
|
43
|
+
it 'correctly resolves direct dropbox links' do
|
44
|
+
url = 'https://dl.dropboxusercontent.com/u/103148235/ImprovedChaseCamerav1.3.1.zip'
|
45
|
+
expect(Kosmos::DownloadUrl.new(url).resolve_download_url).to eq url
|
46
|
+
end
|
47
|
+
|
43
48
|
it 'detects curseforge links' do
|
44
49
|
url = 'http://kerbal.curseforge.com/plugins/123123-whatever'
|
45
50
|
expect(Kosmos::DownloadUrl.new(url)).to be_curseforge
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kosmos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ulysse Carion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- lib/kosmos/packages/astronomers_visual_pack.rb
|
130
130
|
- lib/kosmos/packages/atmospheric_sound_enhancement.rb
|
131
131
|
- lib/kosmos/packages/auto_asparagus.rb
|
132
|
+
- lib/kosmos/packages/auto_unlock_part_models.rb
|
132
133
|
- lib/kosmos/packages/aviation_lights.rb
|
133
134
|
- lib/kosmos/packages/b9_aerospace_pack.rb
|
134
135
|
- lib/kosmos/packages/b9_cockpit_extended.rb
|
@@ -148,6 +149,7 @@ files:
|
|
148
149
|
- lib/kosmos/packages/conics_configurator.rb
|
149
150
|
- lib/kosmos/packages/connected_living_space_api.rb
|
150
151
|
- lib/kosmos/packages/constellation_essentials.rb
|
152
|
+
- lib/kosmos/packages/cool_rockets.rb
|
151
153
|
- lib/kosmos/packages/cross_feed_enabler.rb
|
152
154
|
- lib/kosmos/packages/custom_asteroids.rb
|
153
155
|
- lib/kosmos/packages/dang_it.rb
|
@@ -159,6 +161,7 @@ files:
|
|
159
161
|
- lib/kosmos/packages/dmagic_orbital_science.rb
|
160
162
|
- lib/kosmos/packages/docking_port_alignment_indicator.rb
|
161
163
|
- lib/kosmos/packages/down_under_aerospace.rb
|
164
|
+
- lib/kosmos/packages/eclss.rb
|
162
165
|
- lib/kosmos/packages/editor_extensions.rb
|
163
166
|
- lib/kosmos/packages/editor_part_highlighter.rb
|
164
167
|
- lib/kosmos/packages/engine_ignitor.rb
|
@@ -180,6 +183,7 @@ files:
|
|
180
183
|
- lib/kosmos/packages/hot_rockets.rb
|
181
184
|
- lib/kosmos/packages/hullcam_vds.rb
|
182
185
|
- lib/kosmos/packages/hyperedit.rb
|
186
|
+
- lib/kosmos/packages/improved_chase_camera.rb
|
183
187
|
- lib/kosmos/packages/infernal_robotics.rb
|
184
188
|
- lib/kosmos/packages/kerbal_alarm_clock.rb
|
185
189
|
- lib/kosmos/packages/kerbal_attachment_system.rb
|
@@ -187,11 +191,17 @@ files:
|
|
187
191
|
- lib/kosmos/packages/kerbal_joint_reinforcement.rb
|
188
192
|
- lib/kosmos/packages/kethane_pack.rb
|
189
193
|
- lib/kosmos/packages/ksp_interstellar.rb
|
194
|
+
- lib/kosmos/packages/kspx.rb
|
190
195
|
- lib/kosmos/packages/kw_rocketry.rb
|
191
196
|
- lib/kosmos/packages/launch_countdown.rb
|
192
197
|
- lib/kosmos/packages/mechjeb.rb
|
193
198
|
- lib/kosmos/packages/mk2_cockpit_interior.rb
|
199
|
+
- lib/kosmos/packages/modular_fuel_tanks.rb
|
200
|
+
- lib/kosmos/packages/module_manager.rb
|
201
|
+
- lib/kosmos/packages/near_future_propulsion.rb
|
194
202
|
- lib/kosmos/packages/nova_punch.rb
|
203
|
+
- lib/kosmos/packages/part_catalog.rb
|
204
|
+
- lib/kosmos/packages/planetary_editing_tools.rb
|
195
205
|
- lib/kosmos/packages/precise_node.rb
|
196
206
|
- lib/kosmos/packages/procedural_fairings.rb
|
197
207
|
- lib/kosmos/packages/rcs_build_aid.rb
|
@@ -200,10 +210,14 @@ files:
|
|
200
210
|
- lib/kosmos/packages/safe_chute.rb
|
201
211
|
- lib/kosmos/packages/scansat.rb
|
202
212
|
- lib/kosmos/packages/science_alert.rb
|
213
|
+
- lib/kosmos/packages/service_compartment_tubes.rb
|
203
214
|
- lib/kosmos/packages/spaceplane_plus.rb
|
204
215
|
- lib/kosmos/packages/tac_fuel_balancer.rb
|
205
216
|
- lib/kosmos/packages/tac_life_support.rb
|
217
|
+
- lib/kosmos/packages/texture_replacer.rb
|
206
218
|
- lib/kosmos/packages/toolbar.rb
|
219
|
+
- lib/kosmos/packages/tweak_scale.rb
|
220
|
+
- lib/kosmos/packages/tweakable_everything.rb
|
207
221
|
- lib/kosmos/packages/vanguard_technologies.rb
|
208
222
|
- lib/kosmos/packages/void.rb
|
209
223
|
- lib/kosmos/page_fetcher.js
|
@@ -224,7 +238,7 @@ files:
|
|
224
238
|
- package_generator.rb
|
225
239
|
- spec/download_url_spec.rb
|
226
240
|
- spec/fixtures/example_box.html
|
227
|
-
- spec/fixtures/example_dropbox.html
|
241
|
+
- spec/fixtures/example_dropbox.com.html
|
228
242
|
- spec/fixtures/example_mediafire.html
|
229
243
|
- spec/package_spec.rb
|
230
244
|
- spec/spec_helper.rb
|
@@ -256,8 +270,9 @@ summary: The simple package manager for Kerbal Space Program.
|
|
256
270
|
test_files:
|
257
271
|
- spec/download_url_spec.rb
|
258
272
|
- spec/fixtures/example_box.html
|
259
|
-
- spec/fixtures/example_dropbox.html
|
273
|
+
- spec/fixtures/example_dropbox.com.html
|
260
274
|
- spec/fixtures/example_mediafire.html
|
261
275
|
- spec/package_spec.rb
|
262
276
|
- spec/spec_helper.rb
|
263
277
|
- spec/versioner_spec.rb
|
278
|
+
has_rdoc:
|