- Timestamp:
- 07/04/08 22:56:19 (5 months ago)
- Location:
- dotfiles
- Files:
-
- 1 added
- 2 modified
-
git/cho45-gitconfig (modified) (1 diff)
-
screen/cho45/.screen/asyncrun.rb (added)
-
screen/cho45/.screen/backtick.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
dotfiles/git/cho45-gitconfig
r15061 r15166 7 7 di = diff 8 8 co = checkout 9 ci = commit -v 9 ci = !sh -c 'git commit -av && [ $(git config --bool svn-remote.svn.autodcommit) = "true" ] && $HOME/.screen/asyncrun.rb git svn dcommit && echo "dcommit done!"' 10 cii = commit -v 11 svn-ad = config svn-remote.svn.autodcommit true 12 svn-ado = config svn-remote.svn.autodcommit false 10 13 br = branch 11 14 srd = svn rebase -
dotfiles/screen/cho45/.screen/backtick.rb
r4521 r15166 1 1 #!/usr/bin/ruby 2 2 3 require "open3" 4 require "drb/drb" 5 require "thread" 6 NAME = "AsyncRunDRb/screen" 3 7 4 def network 5 s = File.readlines("/proc/net/dev").detect {|i| i[/^\s*eth0/]}.split(/:|\s+/) 6 [s[2].to_i, s[10].to_i] 8 `/bin/ps -x -o pid=pid,command=comand`.split(/\n/).map {|i| i.strip.split(/\s+/) }.each {|pid, command| 9 system "kill", pid if command.include?(NAME) 10 } 11 $0 = NAME 12 13 $stdout.sync = true 14 15 class AsyncRun 16 def initialize 17 @queue = Queue.new 18 Thread.start do 19 loop do 20 run_queue 21 end 22 end 23 end 24 25 def add_queue(env, command) 26 @queue << [env, command] 27 end 28 29 def run_queue 30 $0 = "#{NAME} waiting..." 31 env, command = @queue.pop 32 $0 = "#{NAME} #{command}" 33 prev_env = ENV.to_hash 34 ENV.replace(env) 35 ENV["LANG"] = "C" 36 Dir.chdir(env["PWD"]) do 37 Open3.popen3(command) do |stdin, stdout, stderr| 38 stdin.close 39 out = Thread.start do 40 stdout.each do |l| 41 puts l.gsub(/[^-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]\s]/n, "#") 42 end 43 end 44 err = Thread.start do 45 stderr.each do |l| 46 puts l.gsub(/[^-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]\s]/n, "#") 47 end 48 end 49 out.join 50 err.join 51 end 52 end 53 ensure 54 ENV.replace(prev_env) 55 end 7 56 end 8 57 9 def cpu_stat 10 _, *s = *File.read("/proc/stat").match(/^cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) 11 s.collect {|i| i.to_i} 12 end 58 DRb.start_service("druby://localhost:9999", AsyncRun.new) 59 puts DRb.uri 13 60 14 stats = [] 15 prev_net = network 16 prev_cpu = cpu_stat 61 case RUBY_PLATFORM 62 when /linux/ 63 def network 64 s = File.readlines("/proc/net/dev").detect {|i| i[/^\s*eth0/]}.split(/:|\s+/) 65 [s[2].to_i, s[10].to_i] 66 end 67 68 def cpu_stat 69 _, *s = *File.read("/proc/stat").match(/^cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) 70 s.collect {|i| i.to_i} 71 end 72 73 stats = [] 74 prev_net = network 75 prev_cpu = cpu_stat 17 76 18 77 19 loop do20 sleep 178 loop do 79 sleep 1 21 80 22 # network23 now = network24 stats << [now[0] - prev_net[0], now[1] - prev_net[1]]25 stats = stats.last(10)81 # network 82 now = network 83 stats << [now[0] - prev_net[0], now[1] - prev_net[1]] 84 stats = stats.last(10) 26 85 27 down, up = stats.inject {|r,i| [r[0]+i[0], r[1]+i[1]] }.map {|i|28 i.to_f / stats.size / 102429 }30 prev_net = now86 down, up = stats.inject {|r,i| [r[0]+i[0], r[1]+i[1]] }.map {|i| 87 i.to_f / stats.size / 1024 88 } 89 prev_net = now 31 90 32 s = 0033 # cpu34 now = cpu_stat35 t = prev_cpu.zip(now)36 total = t.inject(0) {|r,(pr,nw)| r + pr - nw}37 t.pop38 load = t.inject(0) {|r,(pr,nw)| r + pr - nw} / total.to_f * 10039 load = load.abs91 s = 00 92 # cpu 93 now = cpu_stat 94 t = prev_cpu.zip(now) 95 total = t.inject(0) {|r,(pr,nw)| r + pr - nw} 96 t.pop 97 load = t.inject(0) {|r,(pr,nw)| r + pr - nw} / total.to_f * 100 98 load = load.abs 40 99 41 puts "%.1f%% d:% 5.1fKB/s u:% 5.1fKB/s" % [load, down, up] 42 $stdout.flush 100 puts "%.1f%% d:% 5.1fKB/s u:% 5.1fKB/s" % [load, down, up] 43 101 44 prev_cpu = now 102 prev_cpu = now 103 end 104 when /darwin/ 105 loop do 106 sleep 1 107 end 45 108 end 46
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)