Commit cbc4ca95 authored by Michał Siwek's avatar Michał Siwek

Swallow the exception occured while removing pacakge files + bugfixes

parent f1eba9f7
......@@ -18,6 +18,7 @@ end
def setPkg (pkgName, silent = false)
require './packages/' + pkgName
@pkg = Object.const_get(pkgName.capitalize)
@pkg.name = pkgName
puts "Found #{pkgName}, version #{@pkg.version}" unless silent
end
......@@ -71,6 +72,8 @@ def resolveDependencies
pushDeps
return if @dependencies.empty?
puts "Following packages also need to be installed: "
@dependencies.flatten!.each do |dep|
print dep + " "
......@@ -98,7 +101,12 @@ def resolveDependencies
end
def install
unless @pkg.is_fake
if @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name }
puts "Package #{@pkg.name} already installed, skipping..."
return
end
unless @pkg.is_fake?
meta = download
if meta[:source] == true
puts "Building from source, this may take a while..."
......@@ -112,38 +120,48 @@ def install
#system "mv", "./usr/*", "./xd"
FileUtils.mv './dlist', "./meta/#{@pkgName}.directorylist"
FileUtils.mv './filelist', "./meta/#{@pkgName}.filelist"
FileUtils.mv './dlist', "./meta/#{@pkg.name}.directorylist"
FileUtils.mv './filelist', "./meta/#{@pkg.name}.filelist"
end
end
#add to installed packages
@device[:installed_packages].push(name: @pkgName, version: @pkg.version)
@device[:installed_packages].push(name: @pkg.name, version: @pkg.version)
File.open('./device.json', 'w') do |file|
output = JSON.parse @device.to_json
file.write JSON.pretty_generate(output)
end
puts "#{@pkgName.capitalize} installed!"
puts "#{@pkg.name.capitalize} installed!"
end
def remove
File.open("./meta/#{@pkgName}.filelist").each_line do |line|
unless @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name }
puts "Package #{@pkg.name} isn't installed."
return
end
unless @pkg.is_fake?
File.open("./meta/#{@pkg.name}.filelist").each_line do |line|
begin
File.unlink '.' + line.chomp
rescue => exception #swallow exception
end
end
File.readlines("./meta/#{@pkgName}.directorylist").reverse.each do |line|
File.readlines("./meta/#{@pkg.name}.directorylist").reverse.each do |line|
begin
Dir.rmdir '.' + line.chomp
rescue => exception #swallow exception
end
end
File.unlink "./meta/#{@pkgName}.filelist"
File.unlink "./meta/#{@pkgName}.directorylist"
File.unlink "./meta/#{@pkg.name}.filelist"
File.unlink "./meta/#{@pkg.name}.directorylist"
end
#remove from installed packages
@device[:installed_packages].each do |elem|
@device[:installed_packages].delete elem if elem[:name] == @pkgName
@device[:installed_packages].delete elem if elem[:name] == @pkg.name
end
File.open('./device.json', 'w') do |file|
out = JSON.parse @device.to_json
......
......@@ -5,6 +5,7 @@ class Package
class << self
attr_reader :dependencies, :is_fake
attr_accessor :name
end
def self.depends_on (dependency = nil)
@dependencies = [] unless @dependencies
......@@ -15,6 +16,10 @@ class Package
end
def self.is_fake
@is_fake = true
end
def self.is_fake?
@is_fake
end
end
......@@ -6,6 +6,6 @@ class Make < Package
i686: "https://dl.dropboxusercontent.com/s/f6pg4bkg6m3vn7q/make-3.82-chromeos-i686.tar.gz?token_hash=AAHP__I3leN8BCLdP0pLbkNopoFGGhDuKX0sN-I6Zx4JYg&dl=1"
})
binary_sha1 ({
i686: "86321098f3f31daa49abb1bb38045dffb1f168b4"
i686: "ccb01c7358e5abdf8b06305eb31b1969b8b174f7"
})
end
require './packages/gcc'
require './packages/buildessential'
require 'json'
require 'pathname'
......@@ -7,4 +7,4 @@ require 'pathname'
@device[key] = @device[key].to_sym rescue @device[key]
end
Gcc.dependencies
@device[:installed_packages].any? { |pkg| pkg[:name] == 'gcc' }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment