apiotics 0.2.8 → 0.2.9
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/lib/apiotics/hardware.rb +23 -8
- data/lib/apiotics/portal.rb +23 -5
- data/lib/apiotics/version.rb +1 -1
- data/lib/generators/apiotics/script/templates/set_wifi.rake +2 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8c1c641a4fd78cbf146dce87fd547de4eccd727
|
4
|
+
data.tar.gz: 1d71b5ea8c9ee2d4dc6f68aaa58b8691a8267e67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e44139a7721d61e90c44f75facf5dd165554f6a9e5bc45c58ab72bff87e09835741f22036f89bd87a5c2a2af7c2447b91aa28691a99cabd4a0d66387e8ebedf6
|
7
|
+
data.tar.gz: c7e1d205d7dfbfc416cd4cce47cea1c87f8d15c84c4d9fd7c9976772d05cd5e0550188b64cc6f695fbe958fb0ca887a9eeeffe4ce0fa14e35e0b09f0ea1f2414
|
data/lib/apiotics/hardware.rb
CHANGED
@@ -320,7 +320,9 @@ module Apiotics
|
|
320
320
|
end
|
321
321
|
if downloaded == false
|
322
322
|
scripts = Apiotics::Portal.sd_scripts(system)
|
323
|
-
File.
|
323
|
+
file = File.open("#{download_directory}/sd_scripts.tgz", 'wb')
|
324
|
+
file.write(scripts)
|
325
|
+
file.close
|
324
326
|
`tar xvzf #{download_directory}/sd_scripts.tgz -C #{download_directory}`
|
325
327
|
`rm #{download_directory}/sd_scripts.tgz`
|
326
328
|
end
|
@@ -350,7 +352,7 @@ module Apiotics
|
|
350
352
|
end
|
351
353
|
|
352
354
|
def self.sd_config_file(worker_name, name, download_directory)
|
353
|
-
worker_directory = download_directory + "/#{worker_name.downcase}"
|
355
|
+
worker_directory = download_directory.to_s + "/#{worker_name.downcase}"
|
354
356
|
Dir.mkdir worker_directory unless Dir.exist?(worker_directory)
|
355
357
|
config_file_path = "#{worker_directory}/#{worker_name.downcase}.json"
|
356
358
|
if File.exist?(config_file_path)
|
@@ -380,14 +382,19 @@ module Apiotics
|
|
380
382
|
|
381
383
|
def self.brand_sd_image(download_directory, image_path, wifi_settings, config_file_path)
|
382
384
|
status = false
|
383
|
-
branding_script_path
|
385
|
+
branding_script_path = nil
|
384
386
|
if Hardware.mac == true
|
385
387
|
branding_script_path = "#{download_directory}/brand_image.mac.sh"
|
386
388
|
elsif Hardware.linux == true
|
387
389
|
branding_script_path = "#{download_directory}/brand_image.sh"
|
388
390
|
end
|
389
391
|
if branding_script_path != nil
|
390
|
-
|
392
|
+
#puts "Please wait..."
|
393
|
+
IO.popen("#{branding_script_path} #{image_path} #{wifi_settings["ssid"]} #{wifi_settings["password"]} #{config_file_path} dhcp") do |io|
|
394
|
+
while (line = io.gets) do
|
395
|
+
puts line
|
396
|
+
end
|
397
|
+
end
|
391
398
|
status = true
|
392
399
|
else
|
393
400
|
puts "Unrecognized system architecture, exiting."
|
@@ -423,23 +430,30 @@ module Apiotics
|
|
423
430
|
end
|
424
431
|
|
425
432
|
def self.burn_sd_image(download_directory, image_path, disk)
|
433
|
+
img_path = image_path.chomp(".img.gz") + "_branded.img.gz"
|
426
434
|
puts "Burning #{image_path} to #{disk}..."
|
427
435
|
if Hardware.mac == true
|
428
|
-
execute_path = download_directory + "/burn_image_to_disk.mac.sh"
|
436
|
+
execute_path = download_directory.to_s + "/burn_image_to_disk.mac.sh"
|
429
437
|
elsif Hardware.linux == true
|
430
|
-
execute_path = download_directory + "/burn_image_to_disk.sh"
|
438
|
+
execute_path = download_directory.to_s + "/burn_image_to_disk.sh"
|
431
439
|
else
|
432
440
|
execute_path = nil
|
433
441
|
end
|
434
442
|
if execute_path == nil
|
435
443
|
puts "This computer is not running a recognized OS. Exiting."
|
436
444
|
else
|
437
|
-
|
445
|
+
puts "Running sudo #{execute_path} #{image_path} #{disk}"
|
446
|
+
#pwd = STDIN.getpass("Password:")
|
447
|
+
IO.popen("sudo -S #{execute_path} #{img_path} #{disk}") do |io|
|
448
|
+
while (line = io.gets) do
|
449
|
+
puts line
|
450
|
+
end
|
451
|
+
end
|
438
452
|
end
|
439
453
|
end
|
440
454
|
|
441
455
|
def self.sd_card(worker_name, name, config)
|
442
|
-
download_directory =
|
456
|
+
download_directory = Hardware.check_sd_card_scripts
|
443
457
|
if download_directory != nil
|
444
458
|
image_path = Hardware.get_sd_image(download_directory, worker_name)
|
445
459
|
wifi_settings = Hardware.fetch_wifi
|
@@ -520,6 +534,7 @@ module Apiotics
|
|
520
534
|
encrypted_settings = File.read(path)
|
521
535
|
return_hash = encrypted_settings.apiotics_decrypt(pwd)
|
522
536
|
end
|
537
|
+
return_hash = JSON.parse(return_hash)
|
523
538
|
end
|
524
539
|
return_hash
|
525
540
|
end
|
data/lib/apiotics/portal.rb
CHANGED
@@ -266,16 +266,34 @@ module Apiotics
|
|
266
266
|
}
|
267
267
|
end
|
268
268
|
|
269
|
+
##
|
270
|
+
|
269
271
|
def self.get_sd_image(download_directory, worker_name)
|
270
272
|
filename = "#{download_directory}/#{worker_name}.img.gz"
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
273
|
+
response = HTTParty.post("#{Apiotics.configuration.portal}api/download", :query => {:public_key => Apiotics.configuration.public_key, :private_key => Apiotics.configuration.private_key, :worker => worker_name}).body
|
274
|
+
response = JSON.parse(response)
|
275
|
+
url = response["url"]
|
276
|
+
size = response["size"].to_i
|
277
|
+
#puts url
|
278
|
+
total_downloaded = 0
|
279
|
+
chunk = size / 50
|
280
|
+
back = "\b" * 52
|
281
|
+
todo = " " * 50
|
282
|
+
File.open(filename, "wb") do |file|
|
283
|
+
puts "Downloading image..\n"
|
284
|
+
print "[#{todo}]"
|
285
|
+
HTTParty.get(url, stream_body: true) do |fragment|
|
286
|
+
total_downloaded = total_downloaded + fragment.length
|
287
|
+
done = "#" * (total_downloaded / chunk)
|
288
|
+
todo = " " * (50 - total_downloaded / chunk)
|
289
|
+
print "#{back}"
|
290
|
+
print "[#{done}#{todo}]"
|
275
291
|
file.write(fragment)
|
276
292
|
end
|
277
293
|
end
|
278
|
-
|
294
|
+
fin = "#" * 50
|
295
|
+
print "#{back}"
|
296
|
+
print "[#{fin}]\n"
|
279
297
|
end
|
280
298
|
|
281
299
|
def self.register_client
|
data/lib/apiotics/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apiotics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MicroArx Corporation
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -267,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
267
|
version: '0'
|
268
268
|
requirements: []
|
269
269
|
rubyforge_project:
|
270
|
-
rubygems_version: 2.
|
270
|
+
rubygems_version: 2.2.2
|
271
271
|
signing_key:
|
272
272
|
specification_version: 4
|
273
273
|
summary: IoT For Everybody.
|