lib/splash/helpers.rb in prometheus-splash-0.0.1 vs lib/splash/helpers.rb in prometheus-splash-0.0.2

- old
+ new

@@ -4,10 +4,23 @@ # coding: utf-8 module Splash module Helpers + + + def get_process(options = {}) + pattern = options[:pattern] + res = `ps aux|grep '#{pattern}'|grep -v grep`.to_s + unless res.empty? then + return res.split(/\s+/)[1] + else + return '' + end + end + + def is_root? case (Process.uid) when 0 return true else @@ -19,11 +32,11 @@ unless is_root? $stderr.puts "You need to be root to execute this subcommands : #{method.to_s}" $stderr.puts "Please execute with sudo, or rvmsudo." exit 10 else - self.send method + return self.send method end end # method for daemonize blocks # @param [Hash] _options the list of options, keys are symbols @@ -86,11 +99,11 @@ Process.setproctitle options[:description] yield end - return true + return 0 end # @!group facilités sur le système de fichier # facilité d'installation de fichier @@ -139,15 +152,31 @@ #@!group Vérifiers de l'application # verifier d'existence d'un repertoire - # @return [Bool] vrai ou faux + # @return [Array] of Symbol with error type : [:inexistant,:mode,:owner,:group] # @param [Hash] options - # @option options [String] :path le répertoire à créer (relatif ou absolut) + # @option options [String] :path le répertoire (relatif ou absolut) obligatoire + # @option options [String] :mode droit du répertoire optionnel + # @option options [String] :owner owner du répertoire optionnel + # @option options [String] :group groupe du répertoire optionnel def verify_folder(options ={}) - return File.directory?(options[:path]) + res = Array::new + return [:inexistant] unless File.directory?(options[:name]) + stat = File.stat(options[:name]) + if options[:mode] then + mode = "%o" % stat.mode + res << :mode if mode[-3..-1] != options[:mode] + end + if options[:owner] then + res << :owner if Etc.getpwuid(stat.uid).name != options[:owner] + end + if options[:group] then + res << :group if Etc.getgrgid(stat.gid).name != options[:group] + end + return res end # verifier d'existence d'un lien # @return [Bool] vrai ou faux # @param [Hash] options @@ -155,12 +184,15 @@ def verify_link(options ={}) return File.file?(options[:name]) end # verifier d'existence d'un fichier - # @return [Bool] vrai ou faux + # @return [Array] of Symbol with error type : [:inexistant,:mode,:owner,:group] # @param [Hash] options - # @option options [String] :name path du fichier + # @option options [String] :name path du fichier obligatoire + # @option options [String] :mode droit du fichier optionnel + # @option options [String] :owner owner du fichier optionnel + # @option options [String] :group groupe du fichier optionnel def verify_file(options ={}) res = Array::new return [:inexistant] unless File.file?(options[:name]) stat = File.stat(options[:name]) if options[:mode] then