irgat 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,14 +1,20 @@
1
+
2
+ == 0.0.3 2008-11-5
3
+
4
+ * ChangeLog:
5
+ * Fixed some !@log methods
6
+ * Fixed output_log to Irgat::Irgat process
7
+ * Implemented in gem the help module
8
+
1
9
  == 0.0.2 2008-11-3
2
10
 
3
- * Backup Module:
11
+ * ChangeLog:
4
12
  * Fixed Purge and Move old Backups method
5
13
  * Implemented new methods
6
-
7
- * Irgat Base:
14
+ * Irgat Base:
8
15
  * Fixed bug in log Module (!@log error)
9
16
  * Fixed commands_launched resume (!@command_log)
10
-
11
- * Intituive
17
+ * Intituive
12
18
  * Added some colors in cmd
13
19
 
14
20
  == 0.0.1 2008-10-24
@@ -9,10 +9,12 @@ bin/irgat_setup
9
9
  bin/irgat_updater
10
10
  config/hoe.rb
11
11
  config/requirements.rb
12
+ lang/help_cmd_en.rb
12
13
  lib/irgat.rb
13
14
  lib/irgat/console.rb
14
15
  lib/irgat/dependencies.rb
15
16
  lib/irgat/execs.rb
17
+ lib/irgat/help.rb
16
18
  lib/irgat/log.rb
17
19
  lib/irgat/mail.rb
18
20
  lib/irgat/utils.rb
@@ -21,7 +21,8 @@ None
21
21
 
22
22
  == INSTALL:
23
23
 
24
- None
24
+ Irgat need root privelies to install
25
+
25
26
 
26
27
  == LICENSE:
27
28
 
data/bin/irgat CHANGED
@@ -39,8 +39,12 @@ begin
39
39
  require 'rdoc/markup/simple_markup/to_flow'
40
40
  require 'rdoc/ri/ri_formatter'
41
41
  require 'rdoc/ri/ri_options'
42
+ # Email sender
42
43
  require 'net/smtp'
43
44
  require 'tmail'
45
+ # Ssh connections
46
+ require 'termios'
47
+ require 'net/ssh'
44
48
  # irgat Base
45
49
  require 'irgat'
46
50
  rescue LoadError => msj
@@ -0,0 +1,51 @@
1
+ #= Index
2
+ #
3
+ # IRGAT::Irgat Class
4
+ # ----------------
5
+ # get more info typing @your_object.help '<reference word>'
6
+ #
7
+ # * Config:
8
+ # - load_options # Load a hash of options taked from a yml config file
9
+ # - subsytems # print info about the subsytems in irgat
10
+ #
11
+ # * Check utility:
12
+ # - check_programs # check the availability of an array commands names
13
+ # - check_tree_for # check a tree for a subsytem
14
+ # - check_mounted_folder # check if a folder is mounted
15
+ #
16
+ # * Logging:
17
+ # - set_log_output_to_file # set log to a specifed file or default
18
+ # - log # log a formated text to default log output
19
+ # - init_info # log init info for a irgat process
20
+ # - process_report # log information about the state of a process
21
+ #
22
+ # * Exec:
23
+ # - execute_command # exec a command, log it, and control output
24
+ #
25
+ # * Help:
26
+ # - help # info about the help method helpper
27
+ #
28
+ #
29
+ #= Usage
30
+ #
31
+ # irgat -v || --version || version # display version information and exit
32
+ # irgat -h || --help || help # display help and exit
33
+ # irgat < args > # process an irgat petition
34
+ #
35
+ # Options
36
+ # -w || --without_output # no output to standin out
37
+ # -d <debug_level> || --debug_level <debug_level> # override config debug level
38
+ #
39
+ # ---------------------
40
+ # irgat works like a modular tool. For example, the syntaxis for a backup is:
41
+ # $: irgat backup launch
42
+ #
43
+ #= License
44
+ #
45
+ # IRGAT (Intuitive Ruby for Gnoxys Administration Tools)
46
+ # 2007 - 2008 Gnoxys. info@gnoxys.net
47
+ # This program is released under the terms of the GPL v3 license as you cand find in http://www.gnu.org/licenses/gpl.html
48
+ #
49
+ #= Mierda
50
+ #
51
+ # no content
@@ -145,10 +145,22 @@ module Irgat
145
145
 
146
146
  # method to load the config options for a module and return a hash symbol
147
147
  def load_config(config_file = nil)
148
- config_yml = YAML.load_file(config_file || IRGAT_CONFIG + '/' + self.class.to_s.downcase.split('::')[1] + '.yml')
149
- # parse to symbols the config options
150
- config_to_symbols = Hash.new
151
- config_yml.each{|k, v| config_to_symbols[k.to_sym] = v}
148
+ module_name = self.class.to_s.downcase.split('::').last
149
+ config_file ||= "#{ IRGAT_CONFIG }/#{ module_name }.yml"
150
+
151
+ if test(?e,config_file)
152
+ config_yml = YAML.load_file(config_file )
153
+ # parse to symbols the config options
154
+ config_to_symbols = Hash.new
155
+ config_yml.each{|k, v| config_to_symbols[k.to_sym] = v}
156
+ else
157
+ log("warning", "No config '#{ config_file } found. Loading module with empty config", 2)
158
+ config_to_symbols = {:subsystem_name => module_name,
159
+ :subsystem_description => "Irgat #{ module_name } module",
160
+ :log_file_actions => [],
161
+ :log_mail_actions => []
162
+ }
163
+ end
152
164
  config_to_symbols
153
165
  end
154
166
 
@@ -64,7 +64,7 @@ module Irgat
64
64
  "Getting irgat launcher user",
65
65
  { :debug => 3 })
66
66
  if user != command[:output].strip
67
- exit_with_error("#{ @config_module[:subsystem_name] } Irgat module must run as #{ user } User")
67
+ exit_with_error("Irgat '#{ @config_module[:subsystem_name] }' module must run as #{ user } user")
68
68
  end
69
69
  end
70
70
 
@@ -56,10 +56,10 @@ module Irgat
56
56
  def exit_with_error(msj, options = {})
57
57
  log("error", msj, 1)
58
58
 
59
-
59
+ # output unless irgat is not running a module
60
60
  output_log(self,
61
61
  { :main_msj => "[IRGAT] [#{ self.config_module[:subsystem_name].capitalize }] [ERROR] #{ self.action } process in #{ @config[:server_name] }",
62
- :fatal => true })
62
+ :fatal => true }) unless self.class.to_s == "Irgat::Irgat"
63
63
 
64
64
  exit (options[:exit_level] ? options[:exit_level] : 1)
65
65
  end
@@ -0,0 +1,52 @@
1
+ # add utils to irgat::irgat class
2
+
3
+ module Irgat
4
+ module Help
5
+
6
+ def show_help(pattern, exit_irgat = false)
7
+ help_file = IRGAT_LANG + "/help_cmd_#{ @config[:lang] }.rb"
8
+ if ! test(?e, help_file)
9
+ puts "Help file #{ help_file } not found. Check the install or choose another language in your irgat config file"
10
+ puts "Loading default Lang"
11
+ help_file = IRGAT_LANG + "/help_cmd_en.rb"
12
+ end
13
+
14
+ #get comments in file
15
+ comment = File.open(help_file) do |file|
16
+ RDoc.find_comment(file)
17
+ end
18
+
19
+ # parse it, and create needed objects
20
+ comment = comment.gsub(/^\s*#/, '')
21
+ markup = SM::SimpleMarkup.new
22
+ flow_convertor = SM::ToFlow.new
23
+ flow = markup.convert(comment, flow_convertor)
24
+
25
+ #define output format
26
+ format = "plain"
27
+ #index help if nothing was wrotten
28
+ pattern = (pattern.length == 0 ? 'index' : pattern.to_s)
29
+
30
+ #i don't want output in these...
31
+ $stdout = File.new('/dev/null',"w+")
32
+ searched_flow = RDoc.extract_sections(flow, pattern)
33
+ #retake output
34
+ $stdout = STDOUT
35
+
36
+ # i don't like the rdoc way to return the things... it is assumed, that if you don't found your desired section, you want to see all!! O_o
37
+ if flow == searched_flow
38
+ puts "[ Error ] No section founded for your petition #{ pattern }"
39
+ puts "Try a diffent pattern search or try $ irgat help without search pattern to view a list of avaibles sections"
40
+ else
41
+ #we have found, render it
42
+ options = RI::Options.instance
43
+ if args = ENV["RI"]
44
+ options.parse(args.split)
45
+ end
46
+ formatter = options.formatter.new(options, "")
47
+ formatter.display_flow(searched_flow)
48
+ end
49
+ end
50
+ end
51
+ end
52
+
@@ -111,7 +111,7 @@ module Irgat
111
111
  end
112
112
 
113
113
  if fatal
114
- report_resume << "\n [ **FATAL** ] -> Irgat Process ended in command: '#{ module_process.commands_launched.last.keys.to_s }'"
114
+ report_resume << "\n [ **FATAL** ] -> Irgat Process ended in command: '#{ module_process.commands_launched.last.keys.to_s }'" unless !module_process.commands_launched
115
115
  end
116
116
 
117
117
  return report_resume
@@ -124,7 +124,7 @@ module Irgat
124
124
  when "error"
125
125
  return_msj = "\n \x1b[#{ 38 };5;#{ 160 }m#{ "ERROR!!" } \x1b[0m" + log_entry[:msj].gsub(/#{ "FATAL" }/, "\x1b[#{38};5;#{ 160 }m#{ "*FATAL*" }\x1b[0m")
126
126
  when "warning"
127
- return_msj = "\x1b[#{ 38 };5;#{ 240 }m#{ log_entry[:msj] }\x1b[0m"
127
+ return_msj = "\n \x1b[#{ 38 };5;#{ 220 }m#{ "WARNING" } \x1b[0m \x1b[#{ 38 };5;#{ 240 }m#{ log_entry[:msj] }\x1b[0m"
128
128
  when "point"
129
129
  return_msj = "\n\x1b[#{ 48 };5;#{ 252 }m#{ log_entry[:msj] }\x1b[0m \n"
130
130
  when "command"
@@ -2,7 +2,7 @@ module Irgat
2
2
  module Version #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
 
@@ -17,7 +17,7 @@ require 'syntax/convertors/html'
17
17
  require 'erb'
18
18
  require File.dirname(__FILE__) + "/../lib/#{GEM_NAME}/version.rb"
19
19
 
20
- version = Irgat::VERSION::STRING
20
+ version = "#{::Irgat::Version}"
21
21
  download = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
22
22
 
23
23
  def rubyforge_project_id
@@ -33,7 +33,7 @@
33
33
  <h1>irgat</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/irgat"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/irgat" class="numbers">0.0.1</a>
36
+ <a href="http://rubyforge.org/projects/irgat" class="numbers">0.0.2</a>
37
37
  </div>
38
38
  <h1>&amp;#x2192; &#8216;irgat&#8217;</h1>
39
39
  <h2>What</h2>
@@ -51,12 +51,9 @@
51
51
  <p><span class="caps">OOOORRRR</span></p>
52
52
  <p>You can fetch the source from either:</p>
53
53
  <ul>
54
- <li>rubyforge: <span class="caps">MISSING</span> IN <span class="caps">ACTION</span></li>
54
+ <li>rubyforge: <a href="http://rubyforge.org/scm/?group_id=7188">http://rubyforge.org/scm/?group_id=7188</a></li>
55
55
  </ul>
56
- <p><span class="caps">TODO</span> &#8211; You can not created a RubyForge project, OR have not run <code>rubyforge config</code><br />
57
- yet to refresh your local rubyforge data with this projects&#8217; id information.</p>
58
- <p>When you do this, this message will magically disappear!</p>
59
- <p>Or you can hack website/index.txt and make it all go away!!</p>
56
+ <pre>git clone git://rubyforge.org/irgat.git</pre>
60
57
  <ul>
61
58
  <li>github: <a href="http://github.com/GITHUB_USERNAME/irgat/tree/master">http://github.com/GITHUB_USERNAME/irgat/tree/master</a></li>
62
59
  </ul>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: irgat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gnoxys
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-04 00:00:00 +00:00
12
+ date: 2008-11-05 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -78,10 +78,12 @@ files:
78
78
  - bin/irgat_updater
79
79
  - config/hoe.rb
80
80
  - config/requirements.rb
81
+ - lang/help_cmd_en.rb
81
82
  - lib/irgat.rb
82
83
  - lib/irgat/console.rb
83
84
  - lib/irgat/dependencies.rb
84
85
  - lib/irgat/execs.rb
86
+ - lib/irgat/help.rb
85
87
  - lib/irgat/log.rb
86
88
  - lib/irgat/mail.rb
87
89
  - lib/irgat/utils.rb