kosmos 0.0.4 → 0.0.5
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/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:
|