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