1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-18 05:21:47 +03:00
mobile-nixos/boot/init/lib/dependencies.rb

66 lines
1.3 KiB
Ruby
Raw Normal View History

2019-12-23 06:32:34 +03:00
module Dependencies
class BaseDependency
def fulfilled()
true
end
def name()
self.class.name
end
2019-12-23 06:32:34 +03:00
end
class Boot < BaseDependency
end
class Task < BaseDependency
def initialize(instance)
@instance = instance
end
def fulfilled()
if @instance.ran
true
else
$logger.debug(" -> Dependency #{name} unfulfilled (task #{@instance.inspect} hasn't run yet)")
false
end
end
end
2019-12-23 06:32:34 +03:00
class SingletonTask < BaseDependency
def initialize(symbol)
@symbol = symbol
end
2019-12-23 06:32:34 +03:00
def fulfilled()
if Tasks.const_get(@symbol).instance.ran
true
else
$logger.debug(" -> Dependency #{name} unfulfilled (task #{@symbol} hasn't run yet)")
false
end
2019-12-23 06:32:34 +03:00
end
end
class Files < BaseDependency
def initialize(*patterns)
@patterns = *patterns
end
2019-12-23 06:32:34 +03:00
def fulfilled()
if @patterns.all? { |pattern| Dir.glob(pattern).count > 0 }
true
else
$logger.debug do
@patterns.each do |pattern|
unless Dir.glob(pattern).count > 0
" -> Dependency #{name} unfulfilled (Pattern #{pattern} does not match paths)"
end
end
end
false
2019-12-23 06:32:34 +03:00
end
end
end
end