mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-08 23:18:10 -05:00
Swallow the exception occured while removing pacakge files + bugfixes
This commit is contained in:
48
cbrew
48
cbrew
@@ -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
|
||||
|
||||
@@ -70,6 +71,8 @@ def resolveDependencies
|
||||
end
|
||||
|
||||
pushDeps
|
||||
|
||||
return if @dependencies.empty?
|
||||
|
||||
puts "Following packages also need to be installed: "
|
||||
@dependencies.flatten!.each do |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|
|
||||
File.unlink '.' + line.chomp
|
||||
unless @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name }
|
||||
puts "Package #{@pkg.name} isn't installed."
|
||||
return
|
||||
end
|
||||
|
||||
File.readlines("./meta/#{@pkgName}.directorylist").reverse.each do |line|
|
||||
begin
|
||||
Dir.rmdir '.' + line.chomp
|
||||
rescue => exception #swallow exception
|
||||
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/#{@pkg.name}.directorylist").reverse.each do |line|
|
||||
begin
|
||||
Dir.rmdir '.' + line.chomp
|
||||
rescue => exception #swallow exception
|
||||
end
|
||||
end
|
||||
|
||||
File.unlink "./meta/#{@pkg.name}.filelist"
|
||||
File.unlink "./meta/#{@pkg.name}.directorylist"
|
||||
end
|
||||
|
||||
File.unlink "./meta/#{@pkgName}.filelist"
|
||||
File.unlink "./meta/#{@pkgName}.directorylist"
|
||||
|
||||
#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
|
||||
|
||||
4
test.rb
4
test.rb
@@ -1,4 +1,4 @@
|
||||
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' }
|
||||
|
||||
Reference in New Issue
Block a user