knjrbfw 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. data/VERSION +1 -1
  2. data/knjrbfw.gemspec +29 -8
  3. data/lib/knj/arrayext.rb +206 -153
  4. data/lib/knj/autoload/backups/ping.rb +2 -2
  5. data/lib/knj/autoload/erubis.rb +3 -3
  6. data/lib/knj/autoload/facets_dictionary.rb +2 -2
  7. data/lib/knj/autoload/gettext.rb +3 -3
  8. data/lib/knj/autoload/gtk2.rb +1 -1
  9. data/lib/knj/autoload/json.rb +14 -0
  10. data/lib/knj/autoload/magick.rb +3 -3
  11. data/lib/knj/autoload/mysql.rb +3 -3
  12. data/lib/knj/autoload/parsedate.rb +1 -1
  13. data/lib/knj/autoload/ping.rb +2 -2
  14. data/lib/knj/autoload/rexml.rb +5 -5
  15. data/lib/knj/autoload/soap.rb +1 -1
  16. data/lib/knj/autoload/sqlite3.rb +3 -3
  17. data/lib/knj/autoload/tmail.rb +3 -3
  18. data/lib/knj/autoload/xmlsimple.rb +3 -3
  19. data/lib/knj/autoload/zip.rb +3 -3
  20. data/lib/knj/autoload.rb +87 -81
  21. data/lib/knj/cmd_gen.rb +19 -19
  22. data/lib/knj/cmd_parser.rb +59 -0
  23. data/lib/knj/compiler.rb +34 -34
  24. data/lib/knj/cpufreq.rb +37 -37
  25. data/lib/knj/csv.rb +20 -0
  26. data/lib/knj/datarow.rb +406 -239
  27. data/lib/knj/datarow_custom.rb +124 -0
  28. data/lib/knj/datestamp.rb +89 -89
  29. data/lib/knj/datet.rb +550 -454
  30. data/lib/knj/db.rb +1 -0
  31. data/lib/knj/degulesider.rb +42 -44
  32. data/lib/knj/erb/erb.rb +5 -5
  33. data/lib/knj/erb/erb_cache_clean.rb +10 -10
  34. data/lib/knj/erb/erb_fcgi.rb +32 -32
  35. data/lib/knj/erb/erb_fcgi_1.9.rb +32 -32
  36. data/lib/knj/erb/erb_fcgi_jruby.rb +2 -2
  37. data/lib/knj/erb/erb_jruby.rb +5 -5
  38. data/lib/knj/erb/include.rb +243 -243
  39. data/lib/knj/errors.rb +19 -18
  40. data/lib/knj/eruby.rb +12 -10
  41. data/lib/knj/event_filemod.rb +31 -31
  42. data/lib/knj/event_handler.rb +73 -67
  43. data/lib/knj/exchangerates.rb +37 -37
  44. data/lib/knj/facebook_connect.rb +95 -18
  45. data/lib/knj/filesystem.rb +6 -6
  46. data/lib/knj/fs/drivers/filesystem.rb +12 -12
  47. data/lib/knj/fs/drivers/ftp.rb +31 -31
  48. data/lib/knj/fs/drivers/ssh.rb +26 -26
  49. data/lib/knj/fs/fs.rb +31 -31
  50. data/lib/knj/gettext_fallback.rb +15 -15
  51. data/lib/knj/gettext_threadded.rb +75 -75
  52. data/lib/knj/google_sitemap.rb +53 -53
  53. data/lib/knj/gtk2.rb +272 -272
  54. data/lib/knj/gtk2_cb.rb +80 -80
  55. data/lib/knj/gtk2_menu.rb +55 -55
  56. data/lib/knj/gtk2_statuswindow.rb +62 -62
  57. data/lib/knj/gtk2_tv.rb +58 -58
  58. data/lib/knj/hash_methods.rb +27 -36
  59. data/lib/knj/http.rb +189 -167
  60. data/lib/knj/http2.rb +259 -53
  61. data/lib/knj/image.rb +2 -2
  62. data/lib/knj/includes/appserver_cli.rb +18 -18
  63. data/lib/knj/includes/require_info.rb +15 -0
  64. data/lib/knj/ip2location.rb +20 -20
  65. data/lib/knj/ironruby-gtk2/button.rb +14 -14
  66. data/lib/knj/ironruby-gtk2/dialog.rb +42 -42
  67. data/lib/knj/ironruby-gtk2/entry.rb +4 -4
  68. data/lib/knj/ironruby-gtk2/gdk_event.rb +1 -1
  69. data/lib/knj/ironruby-gtk2/gdk_eventbutton.rb +11 -11
  70. data/lib/knj/ironruby-gtk2/gdk_pixbuf.rb +9 -9
  71. data/lib/knj/ironruby-gtk2/gladexml.rb +102 -102
  72. data/lib/knj/ironruby-gtk2/glib.rb +13 -13
  73. data/lib/knj/ironruby-gtk2/gtk2.rb +121 -121
  74. data/lib/knj/ironruby-gtk2/gtk_builder.rb +29 -29
  75. data/lib/knj/ironruby-gtk2/gtk_cellrenderertext.rb +3 -3
  76. data/lib/knj/ironruby-gtk2/gtk_combobox.rb +17 -17
  77. data/lib/knj/ironruby-gtk2/gtk_filechooserbutton.rb +3 -3
  78. data/lib/knj/ironruby-gtk2/gtk_liststore.rb +16 -16
  79. data/lib/knj/ironruby-gtk2/gtk_menu.rb +3 -3
  80. data/lib/knj/ironruby-gtk2/gtk_menuitem.rb +2 -2
  81. data/lib/knj/ironruby-gtk2/gtk_statusicon.rb +3 -3
  82. data/lib/knj/ironruby-gtk2/gtk_treeiter.rb +22 -22
  83. data/lib/knj/ironruby-gtk2/gtk_treeselection.rb +11 -11
  84. data/lib/knj/ironruby-gtk2/gtk_treeview.rb +17 -17
  85. data/lib/knj/ironruby-gtk2/gtk_treeviewcolumn.rb +30 -30
  86. data/lib/knj/ironruby-gtk2/iconsize.rb +1 -1
  87. data/lib/knj/ironruby-gtk2/image.rb +13 -13
  88. data/lib/knj/ironruby-gtk2/label.rb +17 -17
  89. data/lib/knj/ironruby-gtk2/stock.rb +2 -2
  90. data/lib/knj/ironruby-gtk2/tests/test_2.rb +14 -14
  91. data/lib/knj/ironruby-gtk2/tests/test_ironruby_window.rb +37 -37
  92. data/lib/knj/ironruby-gtk2/vbox.rb +3 -3
  93. data/lib/knj/ironruby-gtk2/window.rb +18 -18
  94. data/lib/knj/jruby-gtk2/builder/test_builder.rb +11 -11
  95. data/lib/knj/jruby-gtk2/builder.rb +25 -25
  96. data/lib/knj/jruby-gtk2/cellrenderertext.rb +10 -10
  97. data/lib/knj/jruby-gtk2/checkbutton.rb +1 -1
  98. data/lib/knj/jruby-gtk2/combobox.rb +27 -27
  99. data/lib/knj/jruby-gtk2/dialog.rb +40 -40
  100. data/lib/knj/jruby-gtk2/eventbutton.rb +19 -19
  101. data/lib/knj/jruby-gtk2/gladexml.rb +97 -97
  102. data/lib/knj/jruby-gtk2/gtk2.rb +203 -203
  103. data/lib/knj/jruby-gtk2/hbox.rb +8 -8
  104. data/lib/knj/jruby-gtk2/iconsize.rb +3 -3
  105. data/lib/knj/jruby-gtk2/image.rb +8 -8
  106. data/lib/knj/jruby-gtk2/liststore.rb +54 -54
  107. data/lib/knj/jruby-gtk2/menu.rb +35 -35
  108. data/lib/knj/jruby-gtk2/progressbar.rb +10 -10
  109. data/lib/knj/jruby-gtk2/statusicon.rb +3 -3
  110. data/lib/knj/jruby-gtk2/stock.rb +6 -6
  111. data/lib/knj/jruby-gtk2/tests/test_glade_window.rb +36 -36
  112. data/lib/knj/jruby-gtk2/tests/test_normal_window.rb +3 -3
  113. data/lib/knj/jruby-gtk2/tests/test_trayicon.rb +2 -2
  114. data/lib/knj/jruby-gtk2/treeview.rb +88 -88
  115. data/lib/knj/jruby-gtk2/vbox.rb +10 -10
  116. data/lib/knj/jruby-gtk2/window.rb +7 -7
  117. data/lib/knj/jruby_compiler.rb +12 -12
  118. data/lib/knj/knj.rb +12 -11
  119. data/lib/knj/knj_controller.rb +13 -8
  120. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +499 -316
  121. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +127 -125
  122. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_indexes.rb +43 -25
  123. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +316 -241
  124. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +12 -0
  125. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +146 -146
  126. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_indexes.rb +24 -24
  127. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +283 -283
  128. data/lib/knj/knjdb/libknjdb.rb +96 -52
  129. data/lib/knj/knjdb/libknjdb_java_sqlite3.rb +78 -78
  130. data/lib/knj/knjdb/libknjdb_row.rb +147 -147
  131. data/lib/knj/knjdb/libknjdb_sqlite3_ironruby.rb +61 -61
  132. data/lib/knj/knjdb/revision.rb +262 -0
  133. data/lib/knj/libqt.rb +69 -69
  134. data/lib/knj/libqt_window.rb +8 -8
  135. data/lib/knj/locales.rb +62 -52
  136. data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +54 -54
  137. data/lib/knj/mail.rb +73 -73
  138. data/lib/knj/mailobj.rb +82 -80
  139. data/lib/knj/mount.rb +113 -113
  140. data/lib/knj/notify.rb +11 -11
  141. data/lib/knj/nvidia_settings.rb +43 -43
  142. data/lib/knj/objects/objects_sqlhelper.rb +474 -0
  143. data/lib/knj/objects.rb +569 -793
  144. data/lib/knj/opts.rb +38 -38
  145. data/lib/knj/os.rb +176 -158
  146. data/lib/knj/php.rb +853 -683
  147. data/lib/knj/php_parser/arguments.rb +3 -3
  148. data/lib/knj/php_parser/functions.rb +95 -95
  149. data/lib/knj/php_parser/php_parser.rb +16 -16
  150. data/lib/knj/php_parser/tests/test.rb +6 -6
  151. data/lib/knj/php_parser/tests/test_function_run.rb +6 -6
  152. data/lib/knj/power_manager.rb +29 -29
  153. data/lib/knj/process.rb +457 -0
  154. data/lib/knj/process_meta.rb +400 -0
  155. data/lib/knj/rand.rb +8 -8
  156. data/lib/knj/retry.rb +69 -69
  157. data/lib/knj/rhodes/delegate.rb +414 -0
  158. data/lib/knj/rhodes/rhodes.rb +114 -40
  159. data/lib/knj/rhodes/weakref.rb +80 -0
  160. data/lib/knj/rsvgbin.rb +18 -18
  161. data/lib/knj/scripts/degulesider.rb +2 -2
  162. data/lib/knj/scripts/filesearch.rb +35 -35
  163. data/lib/knj/scripts/ip2location.rb +2 -2
  164. data/lib/knj/scripts/keepalive.rb +2 -2
  165. data/lib/knj/scripts/php_to_rb_helper.rb +376 -0
  166. data/lib/knj/scripts/process_meta_exec.rb +104 -0
  167. data/lib/knj/scripts/svn_merge.rb +21 -21
  168. data/lib/knj/scripts/upgrade_knjrbfw_checker.rb +26 -26
  169. data/lib/knj/sms.rb +52 -52
  170. data/lib/knj/sshrobot/sshrobot.rb +90 -88
  171. data/lib/knj/sshrobot.rb +1 -0
  172. data/lib/knj/strings.rb +186 -74
  173. data/lib/knj/sysuser.rb +25 -25
  174. data/lib/knj/table_writer.rb +97 -0
  175. data/lib/knj/tests/compiler/compiler_test.rb +2 -2
  176. data/lib/knj/tests/test_degulesider.rb +1 -1
  177. data/lib/knj/tests/test_http2_proxy.rb +26 -0
  178. data/lib/knj/tests/test_mount.rb +9 -9
  179. data/lib/knj/tests/test_retry.rb +17 -17
  180. data/lib/knj/thread.rb +23 -24
  181. data/lib/knj/thread2.rb +45 -45
  182. data/lib/knj/threadhandler.rb +135 -102
  183. data/lib/knj/threadpool.rb +195 -145
  184. data/lib/knj/translations.rb +128 -119
  185. data/lib/knj/unix_proc.rb +80 -80
  186. data/lib/knj/web.rb +947 -881
  187. data/lib/knj/webscripts/image.rhtml +142 -67
  188. data/lib/knj/win.rb +2 -2
  189. data/lib/knj/win_registry.rb +58 -58
  190. data/lib/knj/win_tightvnc.rb +125 -125
  191. data/lib/knj/wref.rb +104 -0
  192. data/lib/knj/x11vnc.rb +46 -46
  193. data/lib/knj/youtube.rb +33 -36
  194. data/lib/knjrbfw.rb +1 -0
  195. data/spec/cmd_parser_spec.rb +25 -0
  196. data/spec/db_spec.rb +40 -0
  197. data/spec/db_spec_encoding_test_file.txt +1 -0
  198. data/spec/http2_spec.rb +37 -0
  199. data/spec/knjrbfw_spec.rb +17 -15
  200. data/spec/php_spec.rb +69 -0
  201. data/spec/process_meta_spec.rb +150 -0
  202. data/spec/process_spec.rb +107 -0
  203. data/spec/strings_spec.rb +21 -0
  204. data/spec/web_spec.rb +16 -0
  205. metadata +42 -21
  206. data/lib/knj/autoload/json_autoload.rb +0 -7
  207. data/lib/knj/autoload/twitter.rb +0 -2
  208. data/lib/knj/ext/webrick.rb +0 -31
  209. data/lib/knj/jruby-gtk2/gtk-4.0.jar +0 -0
  210. data/lib/knj/knjdb/mysql-connector-java-5.1.13-bin.jar +0 -0
  211. data/lib/knj/knjdb/sqlitejdbc-v056.jar +0 -0
data/lib/knj/mail.rb CHANGED
@@ -1,75 +1,75 @@
1
1
  class Knj::Mail
2
- def initialize(paras = {})
3
- @paras = {
4
- "smtp_host" => "localhost",
5
- "smtp_port" => 25,
6
- "smtp_user" => nil,
7
- "smtp_passwd" => nil,
8
- "smtp_domain" => ENV["HOSTNAME"]
9
- }
10
-
11
- if paras.is_a?(Hash)
12
- paras.each do |key, value|
13
- @paras[key] = value
14
- end
15
- end
16
-
17
- self.send if @paras["send"]
18
- end
19
-
20
- def html=(value)
21
- @paras["html"] = value
22
- end
23
-
24
- def text=(value)
25
- @paras["text"] = value
26
- end
27
-
28
- def from=(value)
29
- @paras["from"] = value
30
- end
31
-
32
- def subject=(value)
33
- @paras["subject"] = value
34
- end
35
-
36
- def to=(value)
37
- @paras["to"] = value.untaint
38
- end
39
-
40
- def send
41
- raise "No email has been defined to send to." if !@paras["to"]
42
- raise "No subject has been defined." if !@paras["subject"]
43
- raise "No content has been defined." if !@paras["text"] and !@paras["html"]
44
-
45
- mail = TMail::Mail.new
46
- mail.to = @paras["to"]
47
- mail.subject = @paras["subject"]
48
- mail.date = Time.new
49
-
50
- mail.from = @paras["from"] if @paras["from"]
51
-
52
- if @paras["html"]
53
- mail.set_content_type("text", "html")
54
- mail.body = @paras["html"]
55
- elsif @paras["text"]
56
- mail.body = @paras["text"]
57
- end
58
-
59
- smtp_start = Net::SMTP.new(@paras["smtp_host"], @paras["smtp_port"])
60
- smtp_start.enable_ssl if @paras["ssl"]
61
- smtp_start.enable_starttls if @paras["tls"]
62
-
63
- if !@paras["smtp_domain"]
64
- if @paras["smtp_host"]
65
- @paras["smtp_domain"] = @paras["smtp_host"]
66
- else
67
- raise "SMTP domain not given."
68
- end
69
- end
70
-
71
- smtp_start.start(@paras["smtp_domain"], @paras["smtp_user"], @paras["smtp_passwd"]) do |smtp|
72
- smtp.send_message(mail.to_s, @paras["from"], @paras["to"])
73
- end
74
- end
2
+ def initialize(paras = {})
3
+ @paras = {
4
+ "smtp_host" => "localhost",
5
+ "smtp_port" => 25,
6
+ "smtp_user" => nil,
7
+ "smtp_passwd" => nil,
8
+ "smtp_domain" => ENV["HOSTNAME"]
9
+ }
10
+
11
+ if paras.is_a?(Hash)
12
+ paras.each do |key, value|
13
+ @paras[key] = value
14
+ end
15
+ end
16
+
17
+ self.send if @paras["send"]
18
+ end
19
+
20
+ def html=(value)
21
+ @paras["html"] = value
22
+ end
23
+
24
+ def text=(value)
25
+ @paras["text"] = value
26
+ end
27
+
28
+ def from=(value)
29
+ @paras["from"] = value
30
+ end
31
+
32
+ def subject=(value)
33
+ @paras["subject"] = value
34
+ end
35
+
36
+ def to=(value)
37
+ @paras["to"] = value.untaint
38
+ end
39
+
40
+ def send
41
+ raise "No email has been defined to send to." if !@paras["to"]
42
+ raise "No subject has been defined." if !@paras["subject"]
43
+ raise "No content has been defined." if !@paras["text"] and !@paras["html"]
44
+
45
+ mail = TMail::Mail.new
46
+ mail.to = @paras["to"]
47
+ mail.subject = @paras["subject"]
48
+ mail.date = Time.new
49
+
50
+ mail.from = @paras["from"] if @paras["from"]
51
+
52
+ if @paras["html"]
53
+ mail.set_content_type("text", "html")
54
+ mail.body = @paras["html"]
55
+ elsif @paras["text"]
56
+ mail.body = @paras["text"]
57
+ end
58
+
59
+ smtp_start = Net::SMTP.new(@paras["smtp_host"], @paras["smtp_port"])
60
+ smtp_start.enable_ssl if @paras["ssl"]
61
+ smtp_start.enable_starttls if @paras["tls"]
62
+
63
+ if !@paras["smtp_domain"]
64
+ if @paras["smtp_host"]
65
+ @paras["smtp_domain"] = @paras["smtp_host"]
66
+ else
67
+ raise "SMTP domain not given."
68
+ end
69
+ end
70
+
71
+ smtp_start.start(@paras["smtp_domain"], @paras["smtp_user"], @paras["smtp_passwd"]) do |smtp|
72
+ smtp.send_message(mail.to_s, @paras["from"], @paras["to"])
73
+ end
74
+ end
75
75
  end
data/lib/knj/mailobj.rb CHANGED
@@ -1,82 +1,84 @@
1
1
  class Knj::Mailobj
2
- def initialize(args = {})
3
- @args = {
4
- "smtp_host" => "localhost",
5
- "smtp_port" => 25,
6
- "smtp_user" => nil,
7
- "smtp_passwd" => nil,
8
- "smtp_domain" => ENV["HOSTNAME"]
9
- }
10
-
11
- if args.is_a?(Hash)
12
- args.each do |key, value|
13
- @args[key] = value
14
- end
15
- end
16
-
17
- self.send if @args["send"]
18
- end
19
-
20
- def html=(value)
21
- @args["html"] = value
22
- end
23
-
24
- def text=(value)
25
- @args["text"] = value
26
- end
27
-
28
- def from=(value)
29
- @args["from"] = value
30
- end
31
-
32
- def subject=(value)
33
- @args["subject"] = value
34
- end
35
-
36
- def to=(value)
37
- @args["to"] = value.untaint
38
- end
39
-
40
- def send
41
- raise "No email has been defined to send to." if !@args["to"]
42
- raise "No subject has been defined." if !@args["subject"]
43
- raise "No content has been defined." if !@args["text"] and !@args["html"]
44
-
45
- require "mail"
46
-
47
- mail = Mail.new
48
- mail.to = @args["to"]
49
- mail.subject = @args["subject"]
50
- mail.date = Time.new
51
- mail.from = @args["from"] if @args["from"]
52
-
53
- if @args["html"]
54
- tha_html = @args["html"]
55
- mail.html_part do
56
- content_type "text/html; charset=UTF-8"
57
- body tha_html
58
- end
59
- elsif @args["text"]
60
- tha_text = @args["text"]
61
- mail.text_part do
62
- body tha_text
63
- end
64
- end
65
-
66
- smtp_start = Net::SMTP.new(@args["smtp_host"], @args["smtp_port"])
67
- smtp_start.enable_ssl if @args["ssl"]
68
- smtp_start.enable_starttls if @args["tls"]
69
-
70
- if !@args["smtp_domain"]
71
- if @args["smtp_host"]
72
- @args["smtp_domain"] = @args["smtp_host"]
73
- else
74
- raise "SMTP domain not given."
75
- end
76
- end
77
-
78
- smtp_start.start(@args["smtp_domain"], @args["smtp_user"], @args["smtp_passwd"]) do |smtp|
79
- smtp.send_message(mail.to_s, @args["from"], @args["to"])
80
- end
81
- end
2
+ def initialize(args = {})
3
+ @args = {
4
+ "smtp_host" => "localhost",
5
+ "smtp_port" => 25,
6
+ "smtp_user" => nil,
7
+ "smtp_passwd" => nil,
8
+ "smtp_domain" => ENV["HOSTNAME"]
9
+ }
10
+
11
+ if args.is_a?(Hash)
12
+ args.each do |key, value|
13
+ @args[key] = value
14
+ end
15
+ end
16
+
17
+ self.send if @args["send"]
18
+ end
19
+
20
+ def html=(value)
21
+ @args["html"] = value
22
+ end
23
+
24
+ def text=(value)
25
+ @args["text"] = value
26
+ end
27
+
28
+ def from=(value)
29
+ @args["from"] = value
30
+ end
31
+
32
+ def subject=(value)
33
+ @args["subject"] = value
34
+ end
35
+
36
+ def to=(value)
37
+ @args["to"] = value.untaint
38
+ end
39
+
40
+ def send
41
+ raise "No email has been defined to send to." if !@args["to"]
42
+ raise "No subject has been defined." if !@args["subject"]
43
+ raise "No content has been defined." if !@args["text"] and !@args["html"]
44
+
45
+ require "mail"
46
+
47
+ mail = Mail.new
48
+ mail.to = @args["to"]
49
+ mail.subject = @args["subject"]
50
+ mail.date = Time.now
51
+ mail.from = @args["from"] if @args["from"]
52
+
53
+ if @args["html"]
54
+ tha_html = @args["html"]
55
+ mail.html_part do
56
+ content_type "text/html; charset=UTF-8"
57
+ body tha_html
58
+ end
59
+ end
60
+
61
+ if @args["text"]
62
+ tha_text = @args["text"]
63
+ mail.text_part do
64
+ body tha_text
65
+ end
66
+ end
67
+
68
+ smtp_start = Net::SMTP.new(@args["smtp_host"], @args["smtp_port"])
69
+ smtp_start.enable_ssl if @args["ssl"]
70
+ smtp_start.enable_starttls if @args["tls"]
71
+
72
+ if !@args["smtp_domain"]
73
+ if @args["smtp_host"]
74
+ @args["smtp_domain"] = @args["smtp_host"]
75
+ else
76
+ raise "SMTP domain not given."
77
+ end
78
+ end
79
+
80
+ smtp_start.start(@args["smtp_domain"], @args["smtp_user"], @args["smtp_passwd"]) do |smtp|
81
+ smtp.send_message(mail.to_s, @args["from"], @args["to"])
82
+ end
83
+ end
82
84
  end
data/lib/knj/mount.rb CHANGED
@@ -1,115 +1,115 @@
1
1
  class Knj::Mount
2
- def self.list(args = {})
3
- mount_output = Knj::Os.shellcmd("mount")
4
- ret = []
5
-
6
- mount_output.scan(/^(.+?) on (.+?) type (.+) \((.+?)\)$/) do |match|
7
- type = match[2]
8
- folder_from = match[0]
9
- folder_to = match[1]
10
- opts = match[3].split(",")
11
-
12
- folder_from = nil if folder_from == "none"
13
- #raise "The folder doesnt exist?" if !File.exists?(folder_to)
14
-
15
- add = true
16
- add = false if args.key?("to") and args["to"] != folder_to
17
- add = false if args.key?("from") and args["from"] != folder_from
18
-
19
- if args["from_search"]
20
- Knj::Strings.searchstring(args["from_search"]).each do |str|
21
- add = false if !folder_from or folder_from.index(str) == nil
22
- end
23
- end
24
-
25
- if args["to_search"]
26
- Knj::Strings.searchstring(args["to_search"]).each do |str|
27
- add = false if !folder_to or folder_to.index(str) == nil
28
- end
29
- end
30
-
31
- if add
32
- ret << Knj::Mount.new(
33
- :type => type,
34
- :from => folder_from,
35
- :to => folder_to,
36
- :opts => opts
37
- )
38
- end
39
- end
40
-
41
- return ret
42
- end
43
-
44
- def self.mount(args)
45
- cmd = "mount"
46
- cmd += " -t #{Knj::Strings.unixsafe(args["type"])}" if args.key?("type")
47
- cmd += " --bind" if args["bind"]
48
- cmd += " #{Knj::Strings.unixsafe(args["from"])} #{Knj::Strings.unixsafe(args["to"])}"
49
-
50
- if args.key?("opts")
51
- raise "opts argument must be an array." if !args["opts"].is_a?(Array)
52
-
53
- cmd += "-O "
54
-
55
- first = true
56
- args["opts"].each do |opt|
57
- cmd += "," if !first
58
- first = false if first
59
-
60
- if opt.is_a?(Array)
61
- raise "Array-opt must have a length of 2." if opt.length != 2
62
- cmd += "#{Knj::Strings.unixsafe(opt[0])}=#{Knj::Strings.unixsafe(opt[1])}"
63
- elsif arg.is_a?(String)
64
- cmd += "#{Knj::Strings.unixsafe(opt)}"
65
- else
66
- raise "Unknown class: #{opt.class.name}."
67
- end
68
- end
69
- end
70
-
71
- Knj::Os.shellcmd(cmd)
72
- end
73
-
74
- def self.ensure(args)
75
- list = Knj::Mount.list("to_search" => args["to"])
76
- return false if !list.empty?
77
- Knj::Mount.mount(args)
78
- return true
79
- end
80
-
81
- attr_reader :data
82
-
83
- def initialize(data)
84
- @data = data
85
- end
86
-
87
- def [](key)
88
- raise "Invalid key: #{key}." if !@data.key?(key)
89
- return @data[key]
90
- end
91
-
92
- def unmount
93
- Knj::Os.shellcmd("umount #{Knj::Strings.unixsafe(@data[:to])}")
94
- end
95
-
96
- alias :umount :unmount
97
-
98
- def access?(args = {})
99
- args["timeout"] = 2 if !args.key?("timeout")
100
- access = false
101
-
102
- begin
103
- Timeout.timeout(args["timeout"]) do
104
- Dir.new(@data[:to]).each do |file|
105
- access = true
106
- break
107
- end
108
- end
109
- rescue Timeout::Error => e
110
- return false
111
- end
112
-
113
- return access
114
- end
2
+ def self.list(args = {})
3
+ mount_output = Knj::Os.shellcmd("mount")
4
+ ret = []
5
+
6
+ mount_output.scan(/^(.+?) on (.+?) type (.+) \((.+?)\)$/) do |match|
7
+ type = match[2]
8
+ folder_from = match[0]
9
+ folder_to = match[1]
10
+ opts = match[3].split(",")
11
+
12
+ folder_from = nil if folder_from == "none"
13
+ #raise "The folder doesnt exist?" if !File.exists?(folder_to)
14
+
15
+ add = true
16
+ add = false if args.key?("to") and args["to"] != folder_to
17
+ add = false if args.key?("from") and args["from"] != folder_from
18
+
19
+ if args["from_search"]
20
+ Knj::Strings.searchstring(args["from_search"]).each do |str|
21
+ add = false if !folder_from or folder_from.index(str) == nil
22
+ end
23
+ end
24
+
25
+ if args["to_search"]
26
+ Knj::Strings.searchstring(args["to_search"]).each do |str|
27
+ add = false if !folder_to or folder_to.index(str) == nil
28
+ end
29
+ end
30
+
31
+ if add
32
+ ret << Knj::Mount.new(
33
+ :type => type,
34
+ :from => folder_from,
35
+ :to => folder_to,
36
+ :opts => opts
37
+ )
38
+ end
39
+ end
40
+
41
+ return ret
42
+ end
43
+
44
+ def self.mount(args)
45
+ cmd = "mount"
46
+ cmd << " -t #{Knj::Strings.unixsafe(args["type"])}" if args.key?("type")
47
+ cmd << " --bind" if args["bind"]
48
+ cmd << " #{Knj::Strings.unixsafe(args["from"])} #{Knj::Strings.unixsafe(args["to"])}"
49
+
50
+ if args.key?("opts")
51
+ raise "opts argument must be an array." if !args["opts"].is_a?(Array)
52
+
53
+ cmd << "-O "
54
+
55
+ first = true
56
+ args["opts"].each do |opt|
57
+ cmd << "," if !first
58
+ first = false if first
59
+
60
+ if opt.is_a?(Array)
61
+ raise "Array-opt must have a length of 2." if opt.length != 2
62
+ cmd << "#{Knj::Strings.unixsafe(opt[0])}=#{Knj::Strings.unixsafe(opt[1])}"
63
+ elsif arg.is_a?(String)
64
+ cmd << "#{Knj::Strings.unixsafe(opt)}"
65
+ else
66
+ raise "Unknown class: #{opt.class.name}."
67
+ end
68
+ end
69
+ end
70
+
71
+ Knj::Os.shellcmd(cmd)
72
+ end
73
+
74
+ def self.ensure(args)
75
+ list = Knj::Mount.list("to_search" => args["to"])
76
+ return false if !list.empty?
77
+ Knj::Mount.mount(args)
78
+ return true
79
+ end
80
+
81
+ attr_reader :data
82
+
83
+ def initialize(data)
84
+ @data = data
85
+ end
86
+
87
+ def [](key)
88
+ raise "Invalid key: #{key}." if !@data.key?(key)
89
+ return @data[key]
90
+ end
91
+
92
+ def unmount
93
+ Knj::Os.shellcmd("umount #{Knj::Strings.unixsafe(@data[:to])}")
94
+ end
95
+
96
+ alias :umount :unmount
97
+
98
+ def access?(args = {})
99
+ args["timeout"] = 2 if !args.key?("timeout")
100
+ access = false
101
+
102
+ begin
103
+ Timeout.timeout(args["timeout"]) do
104
+ Dir.new(@data[:to]).each do |file|
105
+ access = true
106
+ break
107
+ end
108
+ end
109
+ rescue Timeout::Error => e
110
+ return false
111
+ end
112
+
113
+ return access
114
+ end
115
115
  end
data/lib/knj/notify.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  class Knj::Notify
2
- def self.send(args)
3
- cmd = "notify-send"
4
-
5
- if args["time"]
6
- raise "Time is not numeric." if !Php.is_numeric(args["time"])
7
- cmd += " -t " + args["time"].to_s
8
- end
9
-
10
- cmd += " " + Strings.UnixSafe(args["title"]) + " " + Strings.UnixSafe(args["msg"])
11
- system(cmd)
12
- end
2
+ def self.send(args)
3
+ cmd = "notify-send"
4
+
5
+ if args["time"]
6
+ raise "Time is not numeric." if !Php.is_numeric(args["time"])
7
+ cmd << " -t " + args["time"].to_s
8
+ end
9
+
10
+ cmd << " " + Strings.UnixSafe(args["title"]) + " " + Strings.UnixSafe(args["msg"])
11
+ system(cmd)
12
+ end
13
13
  end
@@ -1,45 +1,45 @@
1
1
  class Knj::Nvidia_settings
2
- attr_reader :data
3
-
4
- def initialize(data = {})
5
- @data = data
6
- @power_mizer_modes = {
7
- "adaptive" => 0,
8
- "performance" => 1
9
- }
10
- end
11
-
12
- def self.list(args = {})
13
- res = Knj::Os.shellcmd("nvidia-settings -q gpus")
14
- ret = []
15
-
16
- res.scan(/\[gpu:(\d+)\]/) do |gpu|
17
- ret << Knj::Nvidia_settings.new(args.merge({
18
- "gpu_no" => gpu[0]
19
- }))
20
- end
21
-
22
- return ret
23
- end
24
-
25
- def power_mizer_mode=(newval)
26
- raise "No such power-mizer-mode." if @power_mizer_modes[newval] == nil
27
-
28
- cmd = "nvidia-settings -a [gpu:#{@data["gpu_no"]}]/GPUPowerMizerMode=#{@power_mizer_modes[newval]}"
29
- res = Knj::Os.shellcmd(cmd)
30
-
31
- if res.index("assigned value") == nil
32
- raise res.strip
33
- end
34
- end
35
-
36
- def extra_args
37
- str = ""
38
-
39
- if @data["display"]
40
- str += " --display #{@data["display"]}"
41
- end
42
-
43
- return str
44
- end
2
+ attr_reader :data
3
+
4
+ def initialize(data = {})
5
+ @data = data
6
+ @power_mizer_modes = {
7
+ "adaptive" => 0,
8
+ "performance" => 1
9
+ }
10
+ end
11
+
12
+ def self.list(args = {})
13
+ res = Knj::Os.shellcmd("nvidia-settings -q gpus")
14
+ ret = []
15
+
16
+ res.scan(/\[gpu:(\d+)\]/) do |gpu|
17
+ ret << Knj::Nvidia_settings.new(args.merge({
18
+ "gpu_no" => gpu[0]
19
+ }))
20
+ end
21
+
22
+ return ret
23
+ end
24
+
25
+ def power_mizer_mode=(newval)
26
+ raise "No such power-mizer-mode." if @power_mizer_modes[newval] == nil
27
+
28
+ cmd = "nvidia-settings -a [gpu:#{@data["gpu_no"]}]/GPUPowerMizerMode=#{@power_mizer_modes[newval]}"
29
+ res = Knj::Os.shellcmd(cmd)
30
+
31
+ if res.index("assigned value") == nil
32
+ raise res.strip
33
+ end
34
+ end
35
+
36
+ def extra_args
37
+ str = ""
38
+
39
+ if @data["display"]
40
+ str << " --display #{@data["display"]}"
41
+ end
42
+
43
+ return str
44
+ end
45
45
  end