miranda 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.idea/.rakeTasks +7 -0
  4. data/.idea/encodings.xml +5 -0
  5. data/.idea/misc.xml +5 -0
  6. data/.idea/modules.xml +9 -0
  7. data/.idea/vcs.xml +7 -0
  8. data/app.rb +83 -0
  9. data/bin/miranda +29 -0
  10. data/helpers/link.rb +9 -0
  11. data/lib/.DS_Store +0 -0
  12. data/lib/miranda/.DS_Store +0 -0
  13. data/lib/miranda/system/linux/application.rb +23 -0
  14. data/lib/miranda/system/linux/cpu.rb +50 -0
  15. data/lib/miranda/system/linux/disk.rb +30 -0
  16. data/lib/miranda/system/linux/os.rb +36 -0
  17. data/lib/miranda/system/linux/ps.rb +31 -0
  18. data/lib/miranda/system/linux/users.rb +28 -0
  19. data/lib/miranda/system/load.rb +9 -0
  20. data/lib/miranda/version.rb +1 -1
  21. data/miranda.gemspec +1 -1
  22. data/public/.DS_Store +0 -0
  23. data/public/coffeescript/dashboard.coffee +81 -0
  24. data/public/coffeescript/home.coffee +19 -0
  25. data/public/coffeescript/labels.coffee +7 -0
  26. data/public/css/app.css +43 -0
  27. data/public/css/bootstrap-theme.css +347 -0
  28. data/public/css/bootstrap-theme.css.map +1 -0
  29. data/public/css/bootstrap-theme.min.css +7 -0
  30. data/public/css/bootstrap.css +5831 -0
  31. data/public/css/bootstrap.css.map +1 -0
  32. data/public/css/bootstrap.min.css +7 -0
  33. data/public/fonts/.DS_Store +0 -0
  34. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  35. data/public/fonts/glyphicons-halflings-regular.svg +229 -0
  36. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  37. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  38. data/public/js/.DS_Store +0 -0
  39. data/public/js/bootstrap.js +1951 -0
  40. data/public/js/bootstrap.min.js +6 -0
  41. data/public/sass/app.sass +15 -0
  42. data/views/.DS_Store +0 -0
  43. data/views/index.slim +38 -0
  44. data/views/layout.slim +21 -0
  45. data/views/memory.slim +1 -0
  46. metadata +45 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4d5ca0bab5c01dfee00e12f89f61f4b824c1c8e
4
- data.tar.gz: bb67c4e04bd95d240a5a4225ec999801227c2b9d
3
+ metadata.gz: 32816bf328c3a90c6c0b515d8f7066d98beb2b05
4
+ data.tar.gz: d60a1bbd3fd404e412d936cb4bcd9f804db5247c
5
5
  SHA512:
6
- metadata.gz: 55264b45ba521c948b9d69794b2f58f4e5a16055a8f00588c6bc0f626c9b1916b0e1fda5244bb9859a2b164273b21875faa6844598a25a6f24056a0d6bbdf54f
7
- data.tar.gz: 182b99b63ad0bde97d1bf82e7efbe8aef3ca4eeadb9b191dfd80fcf62488f472bdba41600a29e038472cab0737f79bdb6634fc116c61ed74cf1a9c1fc87ebf81
6
+ metadata.gz: 8f293d1ef21e9a0433d7f68094d15eac78ad89b6868d9207f75d3ecc154373702df1f7af65d136e5c746fdf0cabeaf137e17d8e5865a5189bc162353cb2e3b7c
7
+ data.tar.gz: ec9b8ae37beb20295e4e37920d1cd66b29f91789095614ba0fc8c291c240243565b668aa242850fe58adcb8f5ed024f77f773679f878a584c2deb925f1284ace
data/.DS_Store ADDED
Binary file
data/.idea/.rakeTasks ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Settings><!--This file was automatically generated by Ruby plugin.
3
+ You are allowed to:
4
+ 1. Remove rake task
5
+ 2. Add existing rake tasks
6
+ To add existing rake tasks automatically delete this file and reload the project.
7
+ --><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build miranda-0.0.1.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Build and install miranda-0.0.1.gem into system gems" fullCmd="install" taksId="install" /><RakeTask description="Create tag v0.0.1 and build and push miranda-0.0.1.gem to Rubygems" fullCmd="release" taksId="release" /></RakeGroup></Settings>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4
+ </project>
5
+
data/.idea/misc.xml ADDED
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" project-jdk-name="ruby-2.0.0-p247" project-jdk-type="RUBY_SDK" />
4
+ </project>
5
+
data/.idea/modules.xml ADDED
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/miranda.iml" filepath="$PROJECT_DIR$/.idea/miranda.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
9
+
data/.idea/vcs.xml ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
7
+
data/app.rb ADDED
@@ -0,0 +1,83 @@
1
+ require 'rubygems'
2
+ require 'sinatra/base'
3
+ require 'json'
4
+ require 'coffee-script'
5
+ require 'slim'
6
+ require 'sass'
7
+
8
+
9
+ module Miranda
10
+ class CoffeeEngine < Sinatra::Base
11
+ set :views, File.dirname(__FILE__) + '/public/coffeescript'
12
+ get "/javascripts/*.js" do
13
+ filename = params[:splat].first
14
+ coffee filename.to_sym
15
+ end
16
+ end
17
+
18
+ class SassEngine < Sinatra::Base
19
+ set :views, File.dirname(__FILE__) + '/public/sass'
20
+ get '/sass/*.css' do
21
+ filename = params[:splat].first
22
+ sass filename.to_sym
23
+ end
24
+ end
25
+
26
+
27
+ class System < Sinatra::Base
28
+ use CoffeeEngine
29
+ use SassEngine
30
+
31
+
32
+ enable :sessions
33
+ set :dump_errors, false
34
+ set :views, Proc.new { File.join(root, "views") }
35
+
36
+ get '/' do
37
+ slim :index
38
+ end
39
+
40
+
41
+ get '/users' do
42
+ @users = Users.new
43
+ $return_users = @users.parse
44
+ content_type :json
45
+ $return_users.to_json
46
+ end
47
+
48
+ get '/disk' do
49
+ @disk = Disk.new
50
+ content_type :json
51
+ @disk.parse.to_json
52
+ end
53
+
54
+ get '/applications' do
55
+ @applications = Application.new
56
+ content_type :json
57
+ @applications.parse.to_json
58
+ end
59
+
60
+
61
+ get '/ps' do
62
+ @ps = Ps_Aux.new
63
+ content_type :json
64
+ @ps.parse.to_json
65
+ end
66
+
67
+ get '/cpu' do
68
+ @cpu = Cpu.new
69
+ content_type :json
70
+ @cpu.parse.to_json
71
+ end
72
+
73
+ get '/os' do
74
+ @os = Os.new
75
+ content_type :json
76
+ @os.parse.to_json
77
+ end
78
+
79
+ end
80
+ end
81
+
82
+
83
+
data/bin/miranda ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ require "optparse"
3
+ require "../lib/miranda/system/load"
4
+ system = RUBY_PLATFORM
5
+
6
+ if system.include? "darwin"
7
+ platform = "linux"
8
+ elsif system.include? "linux"
9
+ platform = "linux"
10
+ else
11
+ puts "Miranda supported is only mac and linux platforms !"
12
+ end
13
+
14
+ MirandaLoad::Load.new(platform)
15
+
16
+ port = 4000
17
+
18
+ opt = OptionParser.new
19
+
20
+ opt.on('-p VAL') do |p|
21
+ port = p
22
+ end
23
+
24
+ opt.parse!
25
+
26
+ puts "Miranda Started !"
27
+
28
+ require "../app.rb"
29
+ Miranda::System.run! :port => port
data/helpers/link.rb ADDED
@@ -0,0 +1,9 @@
1
+ module MirandaHelper
2
+ class Url
3
+ def link_to(url,text=url,opts={})
4
+ attributes = ""
5
+ opts.each { |key,value| attributes << key.to_s << "=\"" << value << "\" "}
6
+ "<a href=\"#{url}\" #{attributes}>#{text}</a>"
7
+ end
8
+ end
9
+ end
data/lib/.DS_Store ADDED
Binary file
Binary file
@@ -0,0 +1,23 @@
1
+ class Application
2
+ @@applications
3
+ def initialize
4
+ @@applications = `/usr/bin/whereis php node mysql vim python ruby java apache2 nginx openssl vsftpd make'.'| /usr/bin/awk '{ split($1, a, ":");if (length($2)==0) print a[1]",not"; else print a[1]","$2;}'`
5
+ end
6
+
7
+ def parse
8
+ @@applications = @@applications.split("\n")
9
+ $return_data = {}
10
+ $i = 0
11
+ @@applications.each do |line|
12
+ line = line.split(",")
13
+ $i += 1
14
+ $return_data[$i] = {
15
+ 'application' => line[0],
16
+ 'status' => line[1]
17
+ }
18
+ end
19
+
20
+ $return_data
21
+
22
+ end
23
+ end
@@ -0,0 +1,50 @@
1
+ class Cpu
2
+
3
+ @@number_of_core
4
+ @@vendor_id
5
+ @@cpu_count
6
+ @@kernel_version
7
+ @@model_name
8
+
9
+ def initialize
10
+ self.total_core
11
+ self.cpu_information
12
+ self.model_name
13
+ self.cpu_count
14
+ self.kernel_version
15
+ end
16
+
17
+ def total_core
18
+ @@number_of_core = `/bin/grep -c ^processor /proc/cpuinfo`
19
+ end
20
+
21
+ def cpu_information
22
+ @@vendor_id = `/bin/grep -a ^vendor /proc/cpuinfo`
23
+ @@vendor_id.split("\n")[0].split("vendor_id")[1].split(":")[1]
24
+ end
25
+
26
+ def model_name
27
+ @@model_name = `/bin/grep model\ name /proc/cpuinfo|sort -u|awk '{print $5" "$7 $8 $9}'`
28
+ end
29
+
30
+ def cpu_count
31
+ @@cpu_count = `grep physical\ id /proc/cpuinfo |sort -u|wc -l`
32
+ end
33
+
34
+ def kernel_version
35
+ @@kernel_version = `uname -rsv`
36
+ end
37
+
38
+
39
+ def parse
40
+ $return_data = {
41
+ 'number_of_core' => @@number_of_core,
42
+ 'model_name' => @@model_name,
43
+ 'vendor_id' => @@vendor_id,
44
+ 'cpu_count' => @@cpu_count,
45
+ 'kernel_version' => @@kernel_version
46
+ }
47
+
48
+ end
49
+
50
+ end
@@ -0,0 +1,30 @@
1
+ # Worked on osx
2
+ class Disk
3
+ @@disk_usage
4
+ def initialize
5
+ @@disk_usage = `/bin/df -h|awk '{print $1","$2","$3","$4","$5","$6}'`
6
+ end
7
+
8
+ def parse
9
+ @@disk_usage = @@disk_usage.split("\n")
10
+ $return_data = {}
11
+ $i = 0
12
+ @@disk_usage.each do |disk|
13
+ disk = disk.split(",")
14
+ if disk[0] != "Filesystem" and disk[0] != "map"
15
+ $i += 1
16
+ $return_data[$i] = {
17
+ 'Filesystem' => disk[0],
18
+ 'Size' => disk[1],
19
+ 'Used' => disk[2],
20
+ 'Avail' => disk[3],
21
+ 'Capacity' => disk[4],
22
+ 'iused' => disk[5]
23
+ }
24
+ end
25
+ end
26
+
27
+ $return_data
28
+
29
+ end
30
+ end
@@ -0,0 +1,36 @@
1
+ class Os
2
+
3
+ @@os_bit
4
+ @@m_os
5
+
6
+ def initialize
7
+ self.m_os
8
+ self.os_bit
9
+ end
10
+
11
+ def m_os
12
+ @@m_os = `egrep -i 'red\ hat|suse|centos|ubuntu|debian' /etc/issue`
13
+ @@m_os
14
+ end
15
+
16
+ def os_bit
17
+ @@os_bit = `uname -m`
18
+ if @@os_bit == "x86_64"
19
+ @@os_bit = "64bit"
20
+ else
21
+ @@os_bit == "32bit"
22
+ end
23
+ end
24
+
25
+
26
+ def parse
27
+ $return_data = {
28
+ 'os_bit' => @@os_bit,
29
+ 'm_os' => @@m_os
30
+ }
31
+ end
32
+
33
+ end
34
+
35
+ a = Os.new
36
+ puts a.m_os
@@ -0,0 +1,31 @@
1
+ class Ps_Aux
2
+ @@ps_aux
3
+
4
+ def initialize
5
+ @@ps_aux = `/bin/ps aux | /usr/bin/awk -F: '{ print $1,$2,$3 }'`
6
+ end
7
+
8
+ def parse
9
+ @@ps_aux = @@ps_aux.split("\n")
10
+ $return = {}
11
+ $i = 0
12
+ @@ps_aux.each do |ps|
13
+ ps = ps.split(" ")
14
+ if ps[0] != "USER"
15
+ $i += 1
16
+ $return[$i] = {
17
+ 'user' => ps[0],
18
+ 'pid' => ps[1],
19
+ 'cpu' => ps[2],
20
+ 'mem' => ps[3],
21
+ 'started' => ps[9],
22
+ 'time' => ps[11]
23
+ }
24
+ end
25
+ end
26
+
27
+ $return
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,28 @@
1
+ ## Worked on osx
2
+
3
+ class Users
4
+
5
+ @@users
6
+
7
+ def initialize
8
+ @@users = `/usr/bin/awk -F: '{ if ($3<=499) print "system,"$1","$6; else print "user,"$1","$6; }' < /etc/passwd`
9
+ end
10
+
11
+ def parse
12
+ $users = @@users.split("\n")
13
+ $i = 0
14
+ $return_users = {}
15
+ $users.each do |user_block|
16
+ $i += 1
17
+ user_block = user_block.split(",")
18
+ $return_users[$i] = {
19
+ 'platform' => user_block[0],
20
+ 'user' => user_block[1],
21
+ 'directory' => user_block[2]
22
+ }
23
+ end
24
+ $return_users
25
+ end
26
+
27
+
28
+ end
@@ -0,0 +1,9 @@
1
+ module MirandaLoad
2
+ class Load
3
+ def initialize(system)
4
+ puts "Ruby Platform: #{system}"
5
+ Dir.glob("../lib/miranda/system/#{system}/*.rb").each { |file| require file }
6
+ end
7
+ end
8
+ end
9
+
@@ -1,3 +1,3 @@
1
1
  module Miranda
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/miranda.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.executables << "miranda"
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
data/public/.DS_Store ADDED
Binary file
@@ -0,0 +1,81 @@
1
+ class Labels
2
+ getLabels: (keyword) ->
3
+ labels =
4
+ m_os: 'Operating System'
5
+ os_bit: 'System Bit'
6
+ return labels[keyword]
7
+
8
+ class Dashboard extends Labels
9
+ constructor: () ->
10
+
11
+ getGeneralInformation: () ->
12
+ html = ""
13
+ that = this
14
+ $.get "/os", (data) ->
15
+ $.each data, (key, value) ->
16
+ html += "<li> "+that.getLabels(key)+": "+(if value isnt "" then value else " No Result ")+"</li>"
17
+ return
18
+ $('#general-information').html html
19
+
20
+ getCpuInformation: () ->
21
+ html = ""
22
+ that = this
23
+ $.get "/cpu", (data) ->
24
+ $.each data, (key,result) ->
25
+ html += "<tr>"
26
+ html += "<td>#{result.number_of_core}</td>"
27
+ html += "<td>#{result.model_name}</td>"
28
+ html += "<td>#{result.vendor_id}</td>"
29
+ html += "<td>#{result.cpu_count}</td>"
30
+ html += "<td>#{result.kernel_version}</td>"
31
+ html += "</tr>"
32
+ return
33
+ $('#cpu_info').html html
34
+
35
+ getUsers: () ->
36
+ html = ""
37
+ that = this
38
+ $.get "/users", (data) ->
39
+ $.each data, (key ,result) ->
40
+ html += "<tr>"
41
+ html += "<td>#{result.platform}</td>"
42
+ html += "<td>#{result.user}</td>"
43
+ html += "<td>#{result.directory}</td>"
44
+ html += "</tr>"
45
+ return
46
+ $('#users').html html
47
+
48
+ getPs: () ->
49
+ html = ""
50
+ that = this
51
+ $.get "/disk", (data) ->
52
+ $('#disk').html "<tr><td colspan='7'>Loading...</td></tr>"
53
+ $.each data, (key,result) ->
54
+ html += "<tr>"
55
+ html += "<td>#{result.Filesystem}</td>"
56
+ html += "<td>#{result.Size}</td>"
57
+ html += "<td>#{result.Used}</td>"
58
+ html += "<td>#{result.Avail}</td>"
59
+ html += "<td>#{result.Capacity}</td>"
60
+ html += "</tr>"
61
+ return
62
+ $('#disk').html html
63
+
64
+ getCpuProc: () ->
65
+ $.get "/top_cpu", (data) ->
66
+ total = data.length
67
+ return_data = ''
68
+ i = 0
69
+
70
+ while i <= total
71
+ return_data += "<li>" + data[i] + "</li>" unless typeof data[i] is "undefined"
72
+ i++
73
+ $('#cpu_list').html return_data
74
+ return
75
+
76
+
77
+
78
+ dashboard = new Dashboard
79
+ dashboard.getGeneralInformation()
80
+ dashboard.getPs()
81
+ dashboard.getUsers()
@@ -0,0 +1,19 @@
1
+ class Dashboard
2
+ constructor: () ->
3
+
4
+ getCpuProc: () ->
5
+ $.get "/top_cpu", (data) ->
6
+ total = data.length
7
+ return_data = ''
8
+ i = 0
9
+
10
+ while i <= total
11
+ return_data += "<li>" + data[i] + "</li>" unless typeof data[i] is "undefined"
12
+ i++
13
+ $('#cpu_list').html return_data
14
+ return
15
+
16
+
17
+
18
+ dashboard = new Dashboard
19
+ dashboard.getCpuProc()
@@ -0,0 +1,7 @@
1
+ class Labels
2
+ getLabels: (keyword) ->
3
+ labels =
4
+ m_os: 'Operating System'
5
+ os_bit: 'System Bit'
6
+ return labels[keyword]
7
+
@@ -0,0 +1,43 @@
1
+ body {
2
+ font-family: 'Quattrocento Sans', sans-serif;
3
+ }
4
+
5
+ .wrapper {
6
+ margin-top:100px;
7
+ }
8
+
9
+ .navbar .nav a {
10
+ font-size: 11px;
11
+ }
12
+ .navbar .nav>li>a { color:#fff !important;}
13
+ .navbar .brand {
14
+ font-weight: 600;
15
+ position: relative;
16
+ top: 8px;
17
+ font-size:15px;
18
+ }
19
+
20
+ .navbar {
21
+ background-color:#c0392b;
22
+ color: #999999;
23
+ }
24
+
25
+ .navbar .brand:hover {
26
+ text-decoration: none;
27
+ }
28
+
29
+ .navbar .brand {
30
+ float: left;
31
+ display: block;
32
+ padding: 8px 20px 12px;
33
+ margin-left: -20px;
34
+ font-size: 20px;
35
+ font-weight: 200;
36
+ line-height: 1;
37
+ color: #ffffff;
38
+ }
39
+
40
+ .navbar .navbar-text {
41
+ margin-bottom: 0;
42
+ line-height: 40px;
43
+ }