sesh 0.3.3 → 0.3.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c1bef49d5e6f451dc54a69ced4686389444b924
4
- data.tar.gz: 64aa0590655e071ca971b879b43491ae8bac003b
3
+ metadata.gz: 45fa82a9c47d0cbdeef3e2e4559be075213997bb
4
+ data.tar.gz: efc1cbf7895f51e8f22233159d1c9f010ce71c83
5
5
  SHA512:
6
- metadata.gz: 30fdfbf7979f17ddc1af7ac36b3c32a9e58835140c21e9e41cdc3acfe045793285aa59b0a5ba397cc37913f50f37ed7f67cf1087f7ccaa81ee5cfdac6b9ff2fc
7
- data.tar.gz: f417dec87b40588935f2363bdae6208eceee0f67cdc786f4e3771db2e595ee671f555529a7a25f4c7838e2b84f926c640cffecb945fcbcd2e4f82be182cda25b
6
+ metadata.gz: e89fbf514e3327e0705f314511aafd0c5704f218e604f8f36d071ce97f581c079b922f958617e577e3dd12232fce642e6297b46b7600c027fb8e26fb2978e57d
7
+ data.tar.gz: ee54d777d081611fd467cff0bc448352b7d9a8a2286a911d86fdc563cfbbfc27c4d5f2c01abcf7666a0223412f5d8e4a6f53e4e6863af2e480b65bb02b2e1bad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sesh (0.3.3)
4
+ sesh (0.3.4)
5
5
  awesome_print (~> 1.6)
6
6
  colorize (~> 0.7.7)
7
7
  deep_merge (~> 1.0)
data/Session.vim CHANGED
@@ -8,7 +8,7 @@ if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
8
8
  let s:wipebuf = bufnr('%')
9
9
  endif
10
10
  set shortmess=aoO
11
- badd +2 lib/sesh/version.rb
11
+ badd +3 lib/sesh/version.rb
12
12
  badd +1 ~/Sites/energy_innovation_award/index.html
13
13
  badd +1 ~/Sites/energy_innovation_award/css/custom.css
14
14
  badd +1 ~/Sites/energy_innovation_award/about.html
@@ -269,10 +269,10 @@ badd +7 ~/Sites/polygallery/lib/polygallery.rb
269
269
  badd +12 ~/Sites/polygallery/lib/polygallery/paperclip_integration.rb
270
270
  badd +172 lib/sesh/cli.rb
271
271
  badd +18 lib/sesh/inferences.rb
272
- badd +22 lib/sesh/assets/sample.yml
272
+ badd +13 lib/sesh/assets/sample.yml
273
273
  badd +74 lib/sesh/tmux_control.rb
274
274
  badd +15 lib/sesh/ssh_control.rb
275
- badd +0 lib/sesh.rb
275
+ badd +1 lib/sesh.rb
276
276
  badd +32 sesh.gemspec
277
277
  argglobal
278
278
  silent! argdel *
@@ -302,18 +302,18 @@ set nosplitbelow
302
302
  set nosplitright
303
303
  wincmd t
304
304
  set winheight=1 winwidth=1
305
- exe '1resize ' . ((&lines * 20 + 31) / 62)
306
- exe 'vert 1resize ' . ((&columns * 136 + 136) / 272)
307
- exe '2resize ' . ((&lines * 19 + 31) / 62)
308
- exe 'vert 2resize ' . ((&columns * 136 + 136) / 272)
309
- exe '3resize ' . ((&lines * 20 + 31) / 62)
310
- exe 'vert 3resize ' . ((&columns * 135 + 136) / 272)
311
- exe '4resize ' . ((&lines * 19 + 31) / 62)
312
- exe 'vert 4resize ' . ((&columns * 135 + 136) / 272)
313
- exe '5resize ' . ((&lines * 19 + 31) / 62)
314
- exe 'vert 5resize ' . ((&columns * 136 + 136) / 272)
315
- exe '6resize ' . ((&lines * 19 + 31) / 62)
316
- exe 'vert 6resize ' . ((&columns * 135 + 136) / 272)
305
+ exe '1resize ' . ((&lines * 16 + 25) / 50)
306
+ exe 'vert 1resize ' . ((&columns * 72 + 73) / 146)
307
+ exe '2resize ' . ((&lines * 15 + 25) / 50)
308
+ exe 'vert 2resize ' . ((&columns * 72 + 73) / 146)
309
+ exe '3resize ' . ((&lines * 16 + 25) / 50)
310
+ exe 'vert 3resize ' . ((&columns * 73 + 73) / 146)
311
+ exe '4resize ' . ((&lines * 15 + 25) / 50)
312
+ exe 'vert 4resize ' . ((&columns * 73 + 73) / 146)
313
+ exe '5resize ' . ((&lines * 15 + 25) / 50)
314
+ exe 'vert 5resize ' . ((&columns * 73 + 73) / 146)
315
+ exe '6resize ' . ((&lines * 15 + 25) / 50)
316
+ exe 'vert 6resize ' . ((&columns * 72 + 73) / 146)
317
317
  argglobal
318
318
  setlocal fdm=manual
319
319
  setlocal fde=0
@@ -324,12 +324,12 @@ setlocal fml=1
324
324
  setlocal fdn=20
325
325
  setlocal fen
326
326
  silent! normal! zE
327
- let s:l = 1 - ((0 * winheight(0) + 10) / 20)
327
+ let s:l = 3 - ((1 * winheight(0) + 8) / 16)
328
328
  if s:l < 1 | let s:l = 1 | endif
329
329
  exe s:l
330
330
  normal! zt
331
- 1
332
- normal! 0
331
+ 3
332
+ normal! 03|
333
333
  wincmd w
334
334
  argglobal
335
335
  edit lib/sesh/tmux_control.rb
@@ -342,12 +342,12 @@ setlocal fml=1
342
342
  setlocal fdn=20
343
343
  setlocal fen
344
344
  silent! normal! zE
345
- let s:l = 74 - ((6 * winheight(0) + 9) / 19)
345
+ let s:l = 113 - ((11 * winheight(0) + 7) / 15)
346
346
  if s:l < 1 | let s:l = 1 | endif
347
347
  exe s:l
348
348
  normal! zt
349
- 74
350
- normal! 033|
349
+ 113
350
+ normal! 018|
351
351
  wincmd w
352
352
  argglobal
353
353
  edit lib/sesh/ssh_control.rb
@@ -360,12 +360,12 @@ setlocal fml=1
360
360
  setlocal fdn=20
361
361
  setlocal fen
362
362
  silent! normal! zE
363
- let s:l = 37 - ((15 * winheight(0) + 10) / 20)
363
+ let s:l = 38 - ((10 * winheight(0) + 8) / 16)
364
364
  if s:l < 1 | let s:l = 1 | endif
365
365
  exe s:l
366
366
  normal! zt
367
- 37
368
- normal! 09|
367
+ 38
368
+ normal! 036|
369
369
  wincmd w
370
370
  argglobal
371
371
  edit lib/sesh/inferences.rb
@@ -378,12 +378,12 @@ setlocal fml=1
378
378
  setlocal fdn=20
379
379
  setlocal fen
380
380
  silent! normal! zE
381
- let s:l = 13 - ((0 * winheight(0) + 9) / 19)
381
+ let s:l = 22 - ((9 * winheight(0) + 7) / 15)
382
382
  if s:l < 1 | let s:l = 1 | endif
383
383
  exe s:l
384
384
  normal! zt
385
- 13
386
- normal! 033|
385
+ 22
386
+ normal! 068|
387
387
  wincmd w
388
388
  argglobal
389
389
  edit lib/sesh.rb
@@ -396,12 +396,12 @@ setlocal fml=1
396
396
  setlocal fdn=20
397
397
  setlocal fen
398
398
  silent! normal! zE
399
- let s:l = 42 - ((7 * winheight(0) + 9) / 19)
399
+ let s:l = 41 - ((11 * winheight(0) + 7) / 15)
400
400
  if s:l < 1 | let s:l = 1 | endif
401
401
  exe s:l
402
402
  normal! zt
403
- 42
404
- normal! 032|
403
+ 41
404
+ normal! 023|
405
405
  wincmd w
406
406
  argglobal
407
407
  edit lib/sesh/cli.rb
@@ -414,25 +414,26 @@ setlocal fml=1
414
414
  setlocal fdn=20
415
415
  setlocal fen
416
416
  silent! normal! zE
417
- let s:l = 44 - ((18 * winheight(0) + 9) / 19)
417
+ let s:l = 210 - ((1 * winheight(0) + 7) / 15)
418
418
  if s:l < 1 | let s:l = 1 | endif
419
419
  exe s:l
420
420
  normal! zt
421
- 44
422
- normal! 025|
421
+ 210
422
+ normal! 032|
423
423
  wincmd w
424
- exe '1resize ' . ((&lines * 20 + 31) / 62)
425
- exe 'vert 1resize ' . ((&columns * 136 + 136) / 272)
426
- exe '2resize ' . ((&lines * 19 + 31) / 62)
427
- exe 'vert 2resize ' . ((&columns * 136 + 136) / 272)
428
- exe '3resize ' . ((&lines * 20 + 31) / 62)
429
- exe 'vert 3resize ' . ((&columns * 135 + 136) / 272)
430
- exe '4resize ' . ((&lines * 19 + 31) / 62)
431
- exe 'vert 4resize ' . ((&columns * 135 + 136) / 272)
432
- exe '5resize ' . ((&lines * 19 + 31) / 62)
433
- exe 'vert 5resize ' . ((&columns * 136 + 136) / 272)
434
- exe '6resize ' . ((&lines * 19 + 31) / 62)
435
- exe 'vert 6resize ' . ((&columns * 135 + 136) / 272)
424
+ 2wincmd w
425
+ exe '1resize ' . ((&lines * 16 + 25) / 50)
426
+ exe 'vert 1resize ' . ((&columns * 72 + 73) / 146)
427
+ exe '2resize ' . ((&lines * 15 + 25) / 50)
428
+ exe 'vert 2resize ' . ((&columns * 72 + 73) / 146)
429
+ exe '3resize ' . ((&lines * 16 + 25) / 50)
430
+ exe 'vert 3resize ' . ((&columns * 73 + 73) / 146)
431
+ exe '4resize ' . ((&lines * 15 + 25) / 50)
432
+ exe 'vert 4resize ' . ((&columns * 73 + 73) / 146)
433
+ exe '5resize ' . ((&lines * 15 + 25) / 50)
434
+ exe 'vert 5resize ' . ((&columns * 73 + 73) / 146)
435
+ exe '6resize ' . ((&lines * 15 + 25) / 50)
436
+ exe 'vert 6resize ' . ((&columns * 72 + 73) / 146)
436
437
  tabnext 1
437
438
  if exists('s:wipebuf')
438
439
  silent exe 'bwipe ' . s:wipebuf
data/lib/sesh/cli.rb CHANGED
@@ -68,11 +68,11 @@ module Sesh
68
68
  parsed_options[:ssh][:remote_addr] = v }
69
69
 
70
70
  # Tmux options
71
- opts.on('-S', '--tmux-socket-file=path', 'Path to Tmux Socket File') {|v|
72
- # fatal("Socket file #{v} does not exist.") unless File.exist?(v)
73
- parsed_options[:tmux][:socket_file] = v }
74
- opts.on('--tmux-pids-file=path', 'Path to Tmux Pids File') {|v|
75
- parsed_options[:tmux][:pids_file] = v }
71
+ # opts.on('-S', '--tmux-socket-file=path', 'Path to Tmux Socket File') {|v|
72
+ # # fatal("Socket file #{v} does not exist.") unless File.exist?(v)
73
+ # parsed_options[:tmux][:socket_file] = v }
74
+ # opts.on('--tmux-pids-file=path', 'Path to Tmux Pids File') {|v|
75
+ # parsed_options[:tmux][:pids_file] = v }
76
76
 
77
77
  # Shell options for remote commands
78
78
  opts.on('-C', '--shell-command=cmd', 'Shell Command to Execute') {|v|
@@ -139,8 +139,8 @@ module Sesh
139
139
  @options[:template] ||= File.join(
140
140
  File.dirname(File.expand_path(__FILE__)), 'assets', 'sample.yml' )
141
141
  end
142
- @options[:tmux][:socket_file] ||= "/tmp/#{@options[:project]}.sock"
143
- @options[:tmux][:pids_file] ||= "/tmp/#{@options[:project]}.pids.txt"
142
+ # @options[:tmux][:socket_file] ||= "/tmp/#{@options[:project]}.sock"
143
+ # @options[:tmux][:pids_file] ||= "/tmp/#{@options[:project]}.pids.txt"
144
144
  if %w(enslave connect).include? @command
145
145
  @options[:ssh][:local_addr] ||= Sesh::Inferences.infer_local_ssh_addr
146
146
  if @options[:ssh][:remote_addr].nil? && ARGV.any?
@@ -205,8 +205,7 @@ module Sesh
205
205
  Logger.success "#{pcount} project#{pcount>1 ? 's':''} currently running:"
206
206
  running_projects.each do |rp|
207
207
  puts; Logger.info "Project: #{rp}", 1
208
- # TODO: handle the socket file better
209
- tc = TmuxControl.new rp, socket_file: "/tmp/#{rp}.sock"
208
+ tc = TmuxControl.new rp
210
209
  tc_clients = tc.connected_client_devices
211
210
  if tc_clients.any?
212
211
  Logger.success "Connected Client Devices:", 2
@@ -1,20 +1,21 @@
1
1
  require 'sesh'
2
+ # require 'tmuxinator'
3
+ # require 'yaml'
2
4
 
3
5
  module Sesh
4
6
  class TmuxControl
5
7
  def initialize(project, options={})
6
8
  @project = project || Inferences::infer_project_from_current_directory
7
- @options = {}.merge(DEFAULT_OPTIONS[:tmux]).merge(options)
8
- @socket_file = @options[:socket_file]
9
+ @options = {}.merge(DEFAULT_OPTIONS[:tmux]).merge options
10
+ @socket_file = @options[:socket_file] || "/tmp/#{@project}.sock"
9
11
  end
10
12
 
11
13
  def self.get_running_projects
12
- # TODO: handle custom socket paths
13
14
  output = Sesh.format_and_run_command <<-BASH
14
15
  ps aux | grep tmux | grep "sesh begin" | grep -v "[g]rep" \
15
16
  | sed -e "s/.*\\/tmp\\/\\(.*\\)\\.sock.*/\\1/"
16
17
  BASH
17
- output.lines
18
+ output.lines.map(&:strip)
18
19
  end
19
20
  def already_running?; self.class.get_running_projects.include? @project end
20
21
  # `ps aux | grep "#{project_name_matcher}"`.strip.length > 0 end
@@ -60,10 +61,6 @@ module Sesh
60
61
  output += output.map{|cpid| obtain_child_pids_from_pid(cpid) - [pid] }.flatten
61
62
  output.reverse
62
63
  end
63
- def store_pids_from_session!
64
- File.open(@options[:pids_file], 'w') {|f|
65
- obtain_pids_from_session.each{|pid| f.puts pid } }
66
- end
67
64
 
68
65
  def kill_running_processes
69
66
  pane_count = `tmux list-panes -s -F "\#{pane_pid} \#{pane_current_command}" -t "#{@project}" 2>/dev/null`.strip.lines.count
@@ -89,7 +86,6 @@ module Sesh
89
86
  if issue_start_command! && Logger.show_progress_until(-> { already_running? })
90
87
  sleep 1
91
88
  if already_running?
92
- store_pids_from_session!
93
89
  Logger.success 'Sesh started successfully.'
94
90
  puts
95
91
  else Logger.fatal 'Sesh failed to start!' end
@@ -108,7 +104,7 @@ module Sesh
108
104
  def restart_project!; stop_project!; sleep 0.5; start_project! end
109
105
 
110
106
  def connected_client_devices
111
- `tmux -S "#{@socket_file}" list-clients | cut -d : -f 1 | cut -d / -f 3`.strip.lines.map(&:strip)
107
+ `tmux -S "#{@socket_file}" list-clients 2>/dev/null | cut -d : -f 1 | cut -d / -f 3`.strip.lines.map(&:strip)
112
108
  end
113
109
  def get_ip_from_device(devname)
114
110
  ip_line = `who -a 2> /dev/null | grep " #{devname} "`.strip
@@ -117,9 +113,9 @@ module Sesh
117
113
  end
118
114
  def get_device_from_ip(ip)
119
115
  return if ( connected_devs = connected_client_devices ).length == 0
120
- who_lines =
121
- `who -a 2> /dev/null | grep #{ip == '127.0.0.1' ? ' -v "\\([.*]\\)\\$' :
122
- '"' + Regexp.escape("(#{ip})") }"`.strip.lines
116
+ return connected_devs.find{|d| get_ip_from_device(ip) == ip } if ip == '127.0.0.1'
117
+ who_lines = `who -a 2> /dev/null | grep "#{ Regexp.escape("(#{ip})") }"`.strip.lines
118
+ puts connected_devs.inspect
123
119
  return if who_lines.length == 0
124
120
  connected_devs.find{|d| who_lines.find{|l| l =~ / #{d} / } }
125
121
  end
@@ -145,7 +141,7 @@ module Sesh
145
141
  resolved_ip = ping_output[1].split(' from ')[1].split(': ')[0]
146
142
  disconnect_client_by_ip! resolved_ip
147
143
  else
148
- puts ping_output
144
+ puts "Ping output: #{ping_output}"
149
145
  end
150
146
  else
151
147
  ssh_identifier =
data/lib/sesh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sesh
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.4'
3
3
  end
data/lib/sesh.rb CHANGED
@@ -42,10 +42,7 @@ module Sesh
42
42
  connect_in_new_window: false,
43
43
  connect_fullscreen: false
44
44
  },
45
- tmux: {
46
- socket_file: nil,
47
- pids_file: nil
48
- }
45
+ tmux: { socket_file: nil }
49
46
  }
50
47
  POSSIBLE_CONFIG_LOCATIONS = %w( sesh_config.yml config/sesh.yml )
51
48
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sesh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - MacKinley Smith