knjrbfw 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/knjrbfw.gemspec +29 -8
- data/lib/knj/arrayext.rb +206 -153
- data/lib/knj/autoload/backups/ping.rb +2 -2
- data/lib/knj/autoload/erubis.rb +3 -3
- data/lib/knj/autoload/facets_dictionary.rb +2 -2
- data/lib/knj/autoload/gettext.rb +3 -3
- data/lib/knj/autoload/gtk2.rb +1 -1
- data/lib/knj/autoload/json.rb +14 -0
- data/lib/knj/autoload/magick.rb +3 -3
- data/lib/knj/autoload/mysql.rb +3 -3
- data/lib/knj/autoload/parsedate.rb +1 -1
- data/lib/knj/autoload/ping.rb +2 -2
- data/lib/knj/autoload/rexml.rb +5 -5
- data/lib/knj/autoload/soap.rb +1 -1
- data/lib/knj/autoload/sqlite3.rb +3 -3
- data/lib/knj/autoload/tmail.rb +3 -3
- data/lib/knj/autoload/xmlsimple.rb +3 -3
- data/lib/knj/autoload/zip.rb +3 -3
- data/lib/knj/autoload.rb +87 -81
- data/lib/knj/cmd_gen.rb +19 -19
- data/lib/knj/cmd_parser.rb +59 -0
- data/lib/knj/compiler.rb +34 -34
- data/lib/knj/cpufreq.rb +37 -37
- data/lib/knj/csv.rb +20 -0
- data/lib/knj/datarow.rb +406 -239
- data/lib/knj/datarow_custom.rb +124 -0
- data/lib/knj/datestamp.rb +89 -89
- data/lib/knj/datet.rb +550 -454
- data/lib/knj/db.rb +1 -0
- data/lib/knj/degulesider.rb +42 -44
- data/lib/knj/erb/erb.rb +5 -5
- data/lib/knj/erb/erb_cache_clean.rb +10 -10
- data/lib/knj/erb/erb_fcgi.rb +32 -32
- data/lib/knj/erb/erb_fcgi_1.9.rb +32 -32
- data/lib/knj/erb/erb_fcgi_jruby.rb +2 -2
- data/lib/knj/erb/erb_jruby.rb +5 -5
- data/lib/knj/erb/include.rb +243 -243
- data/lib/knj/errors.rb +19 -18
- data/lib/knj/eruby.rb +12 -10
- data/lib/knj/event_filemod.rb +31 -31
- data/lib/knj/event_handler.rb +73 -67
- data/lib/knj/exchangerates.rb +37 -37
- data/lib/knj/facebook_connect.rb +95 -18
- data/lib/knj/filesystem.rb +6 -6
- data/lib/knj/fs/drivers/filesystem.rb +12 -12
- data/lib/knj/fs/drivers/ftp.rb +31 -31
- data/lib/knj/fs/drivers/ssh.rb +26 -26
- data/lib/knj/fs/fs.rb +31 -31
- data/lib/knj/gettext_fallback.rb +15 -15
- data/lib/knj/gettext_threadded.rb +75 -75
- data/lib/knj/google_sitemap.rb +53 -53
- data/lib/knj/gtk2.rb +272 -272
- data/lib/knj/gtk2_cb.rb +80 -80
- data/lib/knj/gtk2_menu.rb +55 -55
- data/lib/knj/gtk2_statuswindow.rb +62 -62
- data/lib/knj/gtk2_tv.rb +58 -58
- data/lib/knj/hash_methods.rb +27 -36
- data/lib/knj/http.rb +189 -167
- data/lib/knj/http2.rb +259 -53
- data/lib/knj/image.rb +2 -2
- data/lib/knj/includes/appserver_cli.rb +18 -18
- data/lib/knj/includes/require_info.rb +15 -0
- data/lib/knj/ip2location.rb +20 -20
- data/lib/knj/ironruby-gtk2/button.rb +14 -14
- data/lib/knj/ironruby-gtk2/dialog.rb +42 -42
- data/lib/knj/ironruby-gtk2/entry.rb +4 -4
- data/lib/knj/ironruby-gtk2/gdk_event.rb +1 -1
- data/lib/knj/ironruby-gtk2/gdk_eventbutton.rb +11 -11
- data/lib/knj/ironruby-gtk2/gdk_pixbuf.rb +9 -9
- data/lib/knj/ironruby-gtk2/gladexml.rb +102 -102
- data/lib/knj/ironruby-gtk2/glib.rb +13 -13
- data/lib/knj/ironruby-gtk2/gtk2.rb +121 -121
- data/lib/knj/ironruby-gtk2/gtk_builder.rb +29 -29
- data/lib/knj/ironruby-gtk2/gtk_cellrenderertext.rb +3 -3
- data/lib/knj/ironruby-gtk2/gtk_combobox.rb +17 -17
- data/lib/knj/ironruby-gtk2/gtk_filechooserbutton.rb +3 -3
- data/lib/knj/ironruby-gtk2/gtk_liststore.rb +16 -16
- data/lib/knj/ironruby-gtk2/gtk_menu.rb +3 -3
- data/lib/knj/ironruby-gtk2/gtk_menuitem.rb +2 -2
- data/lib/knj/ironruby-gtk2/gtk_statusicon.rb +3 -3
- data/lib/knj/ironruby-gtk2/gtk_treeiter.rb +22 -22
- data/lib/knj/ironruby-gtk2/gtk_treeselection.rb +11 -11
- data/lib/knj/ironruby-gtk2/gtk_treeview.rb +17 -17
- data/lib/knj/ironruby-gtk2/gtk_treeviewcolumn.rb +30 -30
- data/lib/knj/ironruby-gtk2/iconsize.rb +1 -1
- data/lib/knj/ironruby-gtk2/image.rb +13 -13
- data/lib/knj/ironruby-gtk2/label.rb +17 -17
- data/lib/knj/ironruby-gtk2/stock.rb +2 -2
- data/lib/knj/ironruby-gtk2/tests/test_2.rb +14 -14
- data/lib/knj/ironruby-gtk2/tests/test_ironruby_window.rb +37 -37
- data/lib/knj/ironruby-gtk2/vbox.rb +3 -3
- data/lib/knj/ironruby-gtk2/window.rb +18 -18
- data/lib/knj/jruby-gtk2/builder/test_builder.rb +11 -11
- data/lib/knj/jruby-gtk2/builder.rb +25 -25
- data/lib/knj/jruby-gtk2/cellrenderertext.rb +10 -10
- data/lib/knj/jruby-gtk2/checkbutton.rb +1 -1
- data/lib/knj/jruby-gtk2/combobox.rb +27 -27
- data/lib/knj/jruby-gtk2/dialog.rb +40 -40
- data/lib/knj/jruby-gtk2/eventbutton.rb +19 -19
- data/lib/knj/jruby-gtk2/gladexml.rb +97 -97
- data/lib/knj/jruby-gtk2/gtk2.rb +203 -203
- data/lib/knj/jruby-gtk2/hbox.rb +8 -8
- data/lib/knj/jruby-gtk2/iconsize.rb +3 -3
- data/lib/knj/jruby-gtk2/image.rb +8 -8
- data/lib/knj/jruby-gtk2/liststore.rb +54 -54
- data/lib/knj/jruby-gtk2/menu.rb +35 -35
- data/lib/knj/jruby-gtk2/progressbar.rb +10 -10
- data/lib/knj/jruby-gtk2/statusicon.rb +3 -3
- data/lib/knj/jruby-gtk2/stock.rb +6 -6
- data/lib/knj/jruby-gtk2/tests/test_glade_window.rb +36 -36
- data/lib/knj/jruby-gtk2/tests/test_normal_window.rb +3 -3
- data/lib/knj/jruby-gtk2/tests/test_trayicon.rb +2 -2
- data/lib/knj/jruby-gtk2/treeview.rb +88 -88
- data/lib/knj/jruby-gtk2/vbox.rb +10 -10
- data/lib/knj/jruby-gtk2/window.rb +7 -7
- data/lib/knj/jruby_compiler.rb +12 -12
- data/lib/knj/knj.rb +12 -11
- data/lib/knj/knj_controller.rb +13 -8
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +499 -316
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +127 -125
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_indexes.rb +43 -25
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +316 -241
- data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +12 -0
- data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +146 -146
- data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_indexes.rb +24 -24
- data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +283 -283
- data/lib/knj/knjdb/libknjdb.rb +96 -52
- data/lib/knj/knjdb/libknjdb_java_sqlite3.rb +78 -78
- data/lib/knj/knjdb/libknjdb_row.rb +147 -147
- data/lib/knj/knjdb/libknjdb_sqlite3_ironruby.rb +61 -61
- data/lib/knj/knjdb/revision.rb +262 -0
- data/lib/knj/libqt.rb +69 -69
- data/lib/knj/libqt_window.rb +8 -8
- data/lib/knj/locales.rb +62 -52
- data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +54 -54
- data/lib/knj/mail.rb +73 -73
- data/lib/knj/mailobj.rb +82 -80
- data/lib/knj/mount.rb +113 -113
- data/lib/knj/notify.rb +11 -11
- data/lib/knj/nvidia_settings.rb +43 -43
- data/lib/knj/objects/objects_sqlhelper.rb +474 -0
- data/lib/knj/objects.rb +569 -793
- data/lib/knj/opts.rb +38 -38
- data/lib/knj/os.rb +176 -158
- data/lib/knj/php.rb +853 -683
- data/lib/knj/php_parser/arguments.rb +3 -3
- data/lib/knj/php_parser/functions.rb +95 -95
- data/lib/knj/php_parser/php_parser.rb +16 -16
- data/lib/knj/php_parser/tests/test.rb +6 -6
- data/lib/knj/php_parser/tests/test_function_run.rb +6 -6
- data/lib/knj/power_manager.rb +29 -29
- data/lib/knj/process.rb +457 -0
- data/lib/knj/process_meta.rb +400 -0
- data/lib/knj/rand.rb +8 -8
- data/lib/knj/retry.rb +69 -69
- data/lib/knj/rhodes/delegate.rb +414 -0
- data/lib/knj/rhodes/rhodes.rb +114 -40
- data/lib/knj/rhodes/weakref.rb +80 -0
- data/lib/knj/rsvgbin.rb +18 -18
- data/lib/knj/scripts/degulesider.rb +2 -2
- data/lib/knj/scripts/filesearch.rb +35 -35
- data/lib/knj/scripts/ip2location.rb +2 -2
- data/lib/knj/scripts/keepalive.rb +2 -2
- data/lib/knj/scripts/php_to_rb_helper.rb +376 -0
- data/lib/knj/scripts/process_meta_exec.rb +104 -0
- data/lib/knj/scripts/svn_merge.rb +21 -21
- data/lib/knj/scripts/upgrade_knjrbfw_checker.rb +26 -26
- data/lib/knj/sms.rb +52 -52
- data/lib/knj/sshrobot/sshrobot.rb +90 -88
- data/lib/knj/sshrobot.rb +1 -0
- data/lib/knj/strings.rb +186 -74
- data/lib/knj/sysuser.rb +25 -25
- data/lib/knj/table_writer.rb +97 -0
- data/lib/knj/tests/compiler/compiler_test.rb +2 -2
- data/lib/knj/tests/test_degulesider.rb +1 -1
- data/lib/knj/tests/test_http2_proxy.rb +26 -0
- data/lib/knj/tests/test_mount.rb +9 -9
- data/lib/knj/tests/test_retry.rb +17 -17
- data/lib/knj/thread.rb +23 -24
- data/lib/knj/thread2.rb +45 -45
- data/lib/knj/threadhandler.rb +135 -102
- data/lib/knj/threadpool.rb +195 -145
- data/lib/knj/translations.rb +128 -119
- data/lib/knj/unix_proc.rb +80 -80
- data/lib/knj/web.rb +947 -881
- data/lib/knj/webscripts/image.rhtml +142 -67
- data/lib/knj/win.rb +2 -2
- data/lib/knj/win_registry.rb +58 -58
- data/lib/knj/win_tightvnc.rb +125 -125
- data/lib/knj/wref.rb +104 -0
- data/lib/knj/x11vnc.rb +46 -46
- data/lib/knj/youtube.rb +33 -36
- data/lib/knjrbfw.rb +1 -0
- data/spec/cmd_parser_spec.rb +25 -0
- data/spec/db_spec.rb +40 -0
- data/spec/db_spec_encoding_test_file.txt +1 -0
- data/spec/http2_spec.rb +37 -0
- data/spec/knjrbfw_spec.rb +17 -15
- data/spec/php_spec.rb +69 -0
- data/spec/process_meta_spec.rb +150 -0
- data/spec/process_spec.rb +107 -0
- data/spec/strings_spec.rb +21 -0
- data/spec/web_spec.rb +16 -0
- metadata +42 -21
- data/lib/knj/autoload/json_autoload.rb +0 -7
- data/lib/knj/autoload/twitter.rb +0 -2
- data/lib/knj/ext/webrick.rb +0 -31
- data/lib/knj/jruby-gtk2/gtk-4.0.jar +0 -0
- data/lib/knj/knjdb/mysql-connector-java-5.1.13-bin.jar +0 -0
- data/lib/knj/knjdb/sqlitejdbc-v056.jar +0 -0
data/lib/knj/autoload/tmail.rb
CHANGED
data/lib/knj/autoload/zip.rb
CHANGED
data/lib/knj/autoload.rb
CHANGED
@@ -3,64 +3,71 @@ require "#{$knjpath}/knj"
|
|
3
3
|
|
4
4
|
module Knj
|
5
5
|
autoload :Amixer, $knjpath + "amixer"
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
6
|
+
autoload :ArrayExt, $knjpath + "arrayext"
|
7
|
+
autoload :Datestamp, $knjpath + "datestamp"
|
8
|
+
autoload :Datet, $knjpath + "datet"
|
9
|
+
autoload :Cmd_gen, $knjpath + "cmd_gen"
|
10
|
+
autoload :Cmd_parser, $knjpath + "cmd_parser"
|
11
|
+
autoload :Compiler, $knjpath + "compiler"
|
12
|
+
autoload :Cpufreq, $knjpath + "cpufreq"
|
13
|
+
autoload :Csv, $knjpath + "csv"
|
14
|
+
autoload :Datarow, $knjpath + "datarow"
|
15
|
+
autoload :Db, $knjpath + "knjdb/libknjdb"
|
16
|
+
autoload :Db_row, $knjpath + "knjdb/libknjdb_row"
|
17
|
+
autoload :Degulesider, $knjpath + "degulesider"
|
18
|
+
autoload :Errors, $knjpath + "errors"
|
19
|
+
autoload :Eruby, $knjpath + "eruby"
|
20
|
+
autoload :Event_filemod, $knjpath + "event_filemod"
|
21
|
+
autoload :Event_handler, $knjpath + "event_handler"
|
22
|
+
autoload :Exchangerates, $knjpath + "exchangerates"
|
23
|
+
autoload :Facebook_connect, $knjpath + "facebook_connect"
|
24
|
+
autoload :Fs, $knjpath + "fs/fs"
|
25
|
+
autoload :Filesystem, $knjpath + "filesystem"
|
26
|
+
autoload :Gettext_threadded, $knjpath + "gettext_threadded"
|
27
|
+
autoload :Hash_methods, $knjpath + "hash_methods"
|
28
|
+
autoload :Http, $knjpath + "http"
|
29
|
+
autoload :Http2, $knjpath + "http2"
|
30
|
+
autoload :Image, $knjpath + "image"
|
31
|
+
autoload :Ip2location, $knjpath + "ip2location"
|
32
|
+
autoload :Jruby_compiler, $knjpath + "jruby_compiler"
|
33
|
+
autoload :Locales, $knjpath + "locales"
|
34
|
+
autoload :Objects, $knjpath + "objects"
|
35
|
+
autoload :Opts, $knjpath + "opts"
|
36
|
+
autoload :Mail, $knjpath + "mail"
|
37
|
+
autoload :Mailobj, $knjpath + "mailobj"
|
38
|
+
autoload :Mutexcl, $knjpath + "mutexcl"
|
39
|
+
autoload :Mount, $knjpath + "mount"
|
40
|
+
autoload :Mplayer, $knjpath + "mplayer"
|
41
|
+
autoload :Notify, $knjpath + "notify"
|
42
|
+
autoload :Nvidia_settings, $knjpath + "nvidia_settings"
|
43
|
+
autoload :Web, $knjpath + "web"
|
44
|
+
autoload :Google_sitemap, $knjpath + "google_sitemap"
|
45
|
+
autoload :Process, $knjpath + "process"
|
46
|
+
autoload :Process_meta, $knjpath + "process_meta"
|
47
|
+
autoload :Sms, $knjpath + "sms"
|
48
|
+
autoload :Os, $knjpath + "os"
|
49
|
+
autoload :Gtk2, $knjpath + "gtk2"
|
50
|
+
autoload :Php, $knjpath + "php"
|
51
|
+
autoload :Php_parser, $knjpath + "php_parser/php_parser"
|
52
|
+
autoload :Power_manager, $knjpath + "power_manager"
|
53
|
+
autoload :Rand, $knjpath + "rand"
|
54
|
+
autoload :Retry, $knjpath + "retry"
|
55
|
+
autoload :RSVGBIN, $knjpath + "rsvgbin"
|
56
|
+
autoload :Strings, $knjpath + "strings"
|
57
|
+
autoload :SSHRobot, $knjpath + "sshrobot/sshrobot"
|
58
|
+
autoload :Sysuser, $knjpath + "sysuser"
|
59
|
+
autoload :Table_writer, $knjpath + "table_writer"
|
60
|
+
autoload :Thread, $knjpath + "thread"
|
61
|
+
autoload :Thread2, $knjpath + "thread2"
|
62
|
+
autoload :Threadpool, $knjpath + "threadpool"
|
63
|
+
autoload :Threadhandler, $knjpath + "threadhandler"
|
64
|
+
autoload :Translations, $knjpath + "translations"
|
65
|
+
autoload :X11VNC, $knjpath + "x11vnc"
|
66
|
+
autoload :Unix_proc, $knjpath + "unix_proc"
|
67
|
+
autoload :YouTube, $knjpath + "youtube"
|
68
|
+
autoload :Win, $knjpath + "win"
|
69
|
+
autoload :Wref, $knjpath + "wref"
|
70
|
+
autoload :Wref_map, $knjpath + "wref"
|
64
71
|
end
|
65
72
|
|
66
73
|
#ruby objects.
|
@@ -74,7 +81,7 @@ autoload :EM, "eventmachine"
|
|
74
81
|
autoload :FCGI, "fcgi"
|
75
82
|
autoload :FileUtils, "fileutils"
|
76
83
|
autoload :IPAddr, "ipaddr"
|
77
|
-
autoload :JSON, $knjpath + "autoload/
|
84
|
+
autoload :JSON, $knjpath + "autoload/json"
|
78
85
|
autoload :GD2, $knjpath + "autoload/gd2"
|
79
86
|
autoload :Magick, $knjpath + "autoload/magick"
|
80
87
|
autoload :Mutex, "thread"
|
@@ -102,42 +109,41 @@ autoload :Zip, $knjpath + "autoload/zip"
|
|
102
109
|
autoload :Zlib, "zlib"
|
103
110
|
|
104
111
|
if RUBY_PLATFORM == "java"
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
112
|
+
autoload :GetText, $knjpath + "autoload/gettext"
|
113
|
+
autoload :Gtk, "knj/jruby-gtk2/gtk2"
|
114
|
+
autoload :Gdk, "knj/jruby-gtk2/gtk2"
|
115
|
+
autoload :GladeXML, "knj/jruby-gtk2/gtk2"
|
109
116
|
elsif RUBY_PLATFORM.index("mswin32") != nil
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
117
|
+
autoload :GetText, "knj/gettext_fallback"
|
118
|
+
autoload :Gtk, "knj/ironruby-gtk2/gtk2"
|
119
|
+
autoload :Gdk, "knj/ironruby-gtk2/gtk2"
|
120
|
+
autoload :GladeXML, "knj/ironruby-gtk2/gtk2"
|
114
121
|
else
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
122
|
+
autoload :GetText, $knjpath + "autoload/gettext"
|
123
|
+
autoload :Gtk, $knjpath + "autoload/gtk2"
|
124
|
+
autoload :GladeXML, "libglade2"
|
125
|
+
|
126
|
+
#this bugs?
|
127
|
+
#autoload :Gdk, $knjpath + "autoload/gtk2"
|
121
128
|
end
|
122
129
|
|
123
130
|
module Net
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
131
|
+
autoload :IMAP, "net/imap"
|
132
|
+
autoload :SMTP, "net/smtp"
|
133
|
+
autoload :HTTP, "net/http"
|
134
|
+
autoload :POP3, "net/pop"
|
135
|
+
autoload :POP, "net/pop"
|
136
|
+
autoload :SSH, "net/ssh"
|
130
137
|
end
|
131
138
|
|
132
139
|
module TMail
|
133
|
-
|
140
|
+
autoload :Mail, $knjpath + "autoload/tmail"
|
134
141
|
end
|
135
142
|
|
136
143
|
#facets
|
137
144
|
autoload :Dictionary, $knjpath + "autoload/facets_dictionary"
|
138
145
|
|
139
146
|
#gems
|
140
|
-
autoload :Twitter, $knjpath + "autoload/twitter"
|
141
147
|
autoload :Facebooker, $knjpath + "autoload/facebooker"
|
142
148
|
autoload :Cinch, $knjpath + "autoload/cinch"
|
143
149
|
autoload :ActiveSupport, $knjpath + "autoload/activesupport"
|
data/lib/knj/cmd_gen.rb
CHANGED
@@ -3,38 +3,38 @@ class Knj::Cmd_gen
|
|
3
3
|
cmd = ""
|
4
4
|
|
5
5
|
if args[:bin]
|
6
|
-
cmd
|
6
|
+
cmd << args[:bin]
|
7
7
|
else
|
8
|
-
cmd
|
8
|
+
cmd << "rsync"
|
9
9
|
end
|
10
10
|
|
11
|
-
cmd
|
11
|
+
cmd << " -az"
|
12
12
|
|
13
13
|
if args[:verbose]
|
14
14
|
1.upto(args[:verbose]) do
|
15
|
-
cmd
|
15
|
+
cmd << "v"
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
if args[:ssh]
|
20
|
-
cmd
|
20
|
+
cmd << " -e ssh"
|
21
21
|
|
22
22
|
if args[:port]
|
23
|
-
cmd
|
23
|
+
cmd << " --rsh='ssh -p #{args[:port]}'"
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
if args[:delete]
|
28
|
-
cmd
|
28
|
+
cmd << " --delete"
|
29
29
|
end
|
30
30
|
|
31
31
|
if args[:exclude]
|
32
32
|
args[:exclude].each do |dir|
|
33
|
-
cmd
|
33
|
+
cmd << " --exclude \"#{dir}\""
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
cmd
|
37
|
+
cmd << " \"#{args[:user]}@#{args[:host]}:#{args[:dir_host]}\" \"#{args[:dir_local]}\""
|
38
38
|
|
39
39
|
return cmd
|
40
40
|
end
|
@@ -43,27 +43,27 @@ class Knj::Cmd_gen
|
|
43
43
|
cmd = ""
|
44
44
|
|
45
45
|
if args[:bin]
|
46
|
-
cmd
|
46
|
+
cmd << args[:bin]
|
47
47
|
else
|
48
|
-
cmd
|
48
|
+
cmd << "tar"
|
49
49
|
end
|
50
50
|
|
51
|
-
cmd
|
52
|
-
cmd
|
53
|
-
cmd
|
54
|
-
cmd
|
55
|
-
cmd
|
51
|
+
cmd << " "
|
52
|
+
cmd << "z"if args[:gzip]
|
53
|
+
cmd << "x" if args[:extract]
|
54
|
+
cmd << "f" if args[:file]
|
55
|
+
cmd << "c" if args[:create]
|
56
56
|
|
57
57
|
if args[:verbose]
|
58
58
|
1.upto(args[:verbose]) do
|
59
|
-
cmd
|
59
|
+
cmd << "v"
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
cmd
|
63
|
+
cmd << " \"#{args[:archive_path]}\""
|
64
64
|
|
65
65
|
args[:paths].each do |path|
|
66
|
-
cmd
|
66
|
+
cmd << " \"#{path}\""
|
67
67
|
end
|
68
68
|
|
69
69
|
return cmd
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class Knj::Cmd_parser
|
2
|
+
def self.lsl(str, args = {})
|
3
|
+
ret = []
|
4
|
+
|
5
|
+
str.lines.each do |line|
|
6
|
+
next if line.match(/^total ([\d\.,]+)(M|k|G|)$/)
|
7
|
+
match = line.match(/^(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)\s+(\d+)\s+(.+)\s+([^\W].+?)\s+([\d\.,]+)(M|k|G|K|)\s+((\d+)-(\d+)-(\d+)|(([A-z]{3})\s+(\d+)))\s+(\d+):(\d+)\s+(.+)$/)
|
8
|
+
raise "Could not match: '#{line}'." if !match
|
9
|
+
|
10
|
+
if match[17] and match[18] and match[19]
|
11
|
+
time = Time.local(match[17].to_i, match[18].to_i, match[19].to_i, match[23].to_i, match[24].to_i)
|
12
|
+
elsif match[20] and match[21] and match[22]
|
13
|
+
time = Time.local(Time.now.year, match[21], match[22].to_i, match[23].to_i, match[24].to_i)
|
14
|
+
end
|
15
|
+
|
16
|
+
bytes = match[14].gsub(",", ".").to_f
|
17
|
+
|
18
|
+
size_match = match[15]
|
19
|
+
if size_match == ""
|
20
|
+
#bytes - dont touch
|
21
|
+
elsif size_match.downcase == "k"
|
22
|
+
bytes = bytes * 1024
|
23
|
+
elsif size_match == "M"
|
24
|
+
bytes = bytes * 1024 * 1024
|
25
|
+
elsif size_match == "G"
|
26
|
+
bytes = bytes * 1024 * 1024 * 1024
|
27
|
+
else
|
28
|
+
raise "Unknown size match: '#{size_match}'."
|
29
|
+
end
|
30
|
+
|
31
|
+
ret << {
|
32
|
+
:mod => {
|
33
|
+
:usr => {
|
34
|
+
:read => match[2],
|
35
|
+
:write => match[3],
|
36
|
+
:exec => match[4]
|
37
|
+
},
|
38
|
+
:grp => {
|
39
|
+
:read => match[5],
|
40
|
+
:write => match[6],
|
41
|
+
:exec => match[7]
|
42
|
+
},
|
43
|
+
:all => {
|
44
|
+
:read => match[8],
|
45
|
+
:write => match[9],
|
46
|
+
:exec => match[10]
|
47
|
+
}
|
48
|
+
},
|
49
|
+
:usr => match[12],
|
50
|
+
:grp => match[13],
|
51
|
+
:size => bytes.to_i,
|
52
|
+
:time => time,
|
53
|
+
:file => match[25]
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
return ret
|
58
|
+
end
|
59
|
+
end
|
data/lib/knj/compiler.rb
CHANGED
@@ -1,37 +1,37 @@
|
|
1
1
|
#This class can compile Ruby-files into Ruby-methods on a special class and then call these methods to run the code from the file. The theory is that this can be faster...
|
2
2
|
class Knj::Compiler
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
def initialize(args = {})
|
4
|
+
@args = args
|
5
|
+
@mutex = Mutex.new
|
6
|
+
|
7
|
+
if @args[:cache_hash]
|
8
8
|
@compiled = @args[:cache_hash]
|
9
9
|
else
|
10
10
|
@compiled = {}
|
11
11
|
end
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
12
|
+
end
|
13
|
+
|
14
|
+
#Compiles file into cache as a method.
|
15
|
+
def compile_file(args)
|
16
|
+
raise "File does not exist." if !File.exist?(args[:filepath])
|
17
|
+
defname = def_name_for_file_path(args[:filepath])
|
18
|
+
|
19
|
+
evalcont = "class Knj::Compiler::Container; def self.#{defname};"
|
20
|
+
evalcont << File.read(args[:filepath])
|
21
|
+
evalcont << ";end;end"
|
22
|
+
|
23
|
+
eval(evalcont, nil, args[:fileident])
|
24
24
|
@compiled[args[:filepath]] = Time.new
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
25
|
+
end
|
26
|
+
|
27
|
+
#Returns the method name for a filepath.
|
28
|
+
def def_name_for_file_path(filepath)
|
29
|
+
return filepath.gsub("/", "_").gsub(".", "_")
|
30
|
+
end
|
31
|
+
|
32
|
+
#Compile and evaluate a file - it will be cached.
|
33
|
+
def eval_file(args)
|
34
|
+
#Compile if it hasnt been compiled yet.
|
35
35
|
if !@compiled.key?(args[:filepath])
|
36
36
|
@mutex.synchronize do
|
37
37
|
compile_file(args) if !@compiled.key?(args[:filepath])
|
@@ -46,11 +46,11 @@ class Knj::Compiler
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
49
|
+
#Call the compiled function.
|
50
|
+
defname = def_name_for_file_path(args[:filepath])
|
51
|
+
Knj::Compiler::Container.send(defname)
|
52
|
+
end
|
53
|
+
|
54
|
+
#This class holds the compiled methods.
|
55
|
+
class Knj::Compiler::Container; end
|
56
56
|
end
|
data/lib/knj/cpufreq.rb
CHANGED
@@ -1,40 +1,40 @@
|
|
1
1
|
#This class can manipulate the CPU behavior through "cpufreq".
|
2
2
|
class Knj::Cpufreq
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
3
|
+
attr_reader :data
|
4
|
+
|
5
|
+
def initialize(data)
|
6
|
+
@data = data
|
7
|
+
@allowed_govs = ["performance", "ondemand", "powersafe", "conservative"]
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.list
|
11
|
+
ret = []
|
12
|
+
cont = File.read("/proc/cpuinfo")
|
13
|
+
|
14
|
+
matches = cont.scan(/processor\s*:[\s\S]+?\n\n/)
|
15
|
+
raise "Could not detect CPUs" if !matches or matches.empty?
|
16
|
+
|
17
|
+
matches.each do |cpucont|
|
18
|
+
cpu_features = {}
|
19
|
+
features = cpucont.scan(/(.+)\s*:\s*(.+)\s*/)
|
20
|
+
|
21
|
+
features.each do |data|
|
22
|
+
cpu_features[data[0].strip] = data[1].strip
|
23
|
+
end
|
24
|
+
|
25
|
+
ret << Knj::Cpufreq.new(cpu_features)
|
26
|
+
end
|
27
|
+
|
28
|
+
return ret
|
29
|
+
end
|
30
|
+
|
31
|
+
def governor=(newgov)
|
32
|
+
raise "Governor not found." if @allowed_govs.index(newgov) == nil
|
33
|
+
|
34
|
+
cmd = "cpufreq-set --cpu #{@data["processor"]} --governor #{newgov}"
|
35
|
+
res = Knj::Os::shellcmd(cmd)
|
36
|
+
if res.index("Error setting new values") != nil
|
37
|
+
raise res.strip
|
38
|
+
end
|
39
|
+
end
|
40
40
|
end
|
data/lib/knj/csv.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class Knj::Csv
|
2
|
+
def self.arr_to_csv(arr, del, encl)
|
3
|
+
str = ""
|
4
|
+
first = true
|
5
|
+
arr.each do |val|
|
6
|
+
if first
|
7
|
+
first = false
|
8
|
+
else
|
9
|
+
str << del
|
10
|
+
end
|
11
|
+
|
12
|
+
val = val.to_s.encode("utf-8").gsub(del, "").gsub(encl, "")
|
13
|
+
str << "#{encl}#{val}#{encl}"
|
14
|
+
end
|
15
|
+
|
16
|
+
str << "\n"
|
17
|
+
|
18
|
+
return str
|
19
|
+
end
|
20
|
+
end
|