remote_sh 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 704e7c8b84ebc598cc5e4d4859c401c88a4966ae5bebe4816169fd2cfc07d11e
4
- data.tar.gz: 44a46d576571e529cec100b914c4c377ed0c7c39d289bef9d3e21577d91b1ac0
3
+ metadata.gz: 67423d9a51157d17c0945130089f3a92504d3c3748fc9fcff1342fec5fe1c84e
4
+ data.tar.gz: 65e267157add7333bc4cbb95404f0e68c2b0a423252223b315a292de7b1ce3a8
5
5
  SHA512:
6
- metadata.gz: be962d6ac6e1e2ac3c3d270c0234177c5f547f6a0452564f3eedc8de34fbc5366d932f5bd9fdb871613f2a96de7ca1d2144622064ce5a0cd843fe967d6a7d69d
7
- data.tar.gz: 785be7983d082f0481999c8e8c15e3096b34242cc18cef87d9c83f91cf446e0b5753d1145dafe10240e6eabcde02975d9bd92735982f51f002903e41e89e3b51
6
+ metadata.gz: 4893611c20ccd6f49f65b97cdd6a68e02d20b2818df22e4b2204076d545061eb42feab92fb3536023adf5ef76576923cd3f0fec48a1e0772ae458e385f103523
7
+ data.tar.gz: 3145547a5e731b1dd2d03128be41eadf9123c24622e4ff4020c9b8ffc8ae6898917129652ef569252c733f806fed3b27e692dd52b98ecb87f7469df15fc740ae
data/lib/remote_sh/cli.rb CHANGED
@@ -33,6 +33,7 @@ module RemoteSh
33
33
  ensure
34
34
  File.delete(pid_filename) if @owns_sync
35
35
  end
36
+ map 'a' => :attach
36
37
 
37
38
  desc "sync_down", "synces down remote changes"
38
39
  def sync_down
@@ -44,6 +45,24 @@ module RemoteSh
44
45
  )
45
46
  end
46
47
 
48
+ desc "sync_up", "synces up local changes"
49
+ def sync_up
50
+ RsyncHelper.up(
51
+ WorkspaceConfiguration::WOKRING_DIR,
52
+ WorkspaceConfiguration.config["host_path"],
53
+ WorkspaceConfiguration.host_config["host"],
54
+ WorkspaceConfiguration.config["ignore"] || []
55
+ )
56
+ end
57
+
58
+ desc "exec", "executes given command within remote context"
59
+ def exec(*argv)
60
+ host = WorkspaceConfiguration.host_config["host"]
61
+ host_path = WorkspaceConfiguration.config["host_path"]
62
+ SshHelper.exec(host, host_path, argv)
63
+ end
64
+ map 'e' => :exec
65
+
47
66
  desc "init", "inits"
48
67
  def init
49
68
  WorkspaceConfiguration.init!
@@ -20,10 +20,22 @@ module RemoteSh
20
20
  Filewatcher.new("#{local_path}/**/{.[^\.]*,*}", interval: 1).watch do |_changes|
21
21
  if @sync_side == :client || @sync_side.nil?
22
22
  mutex.synchronize do
23
- @sync_side = :client
24
- RsyncHelper.up(local_path, host_path, host, ignored_files)
23
+ @sync_side = :clientA
24
+ begin
25
+ RsyncHelper.up(local_path, host_path, host, ignored_files)
26
+ @up_requested = false
27
+ rescue
28
+ @up_requested = true
29
+ end
25
30
  do_after_timeout(1) do
26
- mutex.synchronize { @sync_side = nil }
31
+ begin
32
+ RsyncHelper.up(local_path, host_path, host, ignored_files) if @up_requested
33
+ rescue
34
+ end
35
+
36
+ mutex.synchronize do
37
+ @sync_side = nil
38
+ end
27
39
  end
28
40
  end
29
41
  end
@@ -89,8 +101,17 @@ module RemoteSh
89
101
  if @sync_side == :server || @sync_side.nil?
90
102
  mutex.synchronize do
91
103
  @sync_side = :server
92
- RsyncHelper.down(local_path, host_path, host, ignored_files)
104
+ begin
105
+ RsyncHelper.down(local_path, host_path, host, ignored_files)
106
+ @down_requested = false
107
+ rescue
108
+ @down_requested = true
109
+ end
93
110
  do_after_timeout(1) do
111
+ begin
112
+ RsyncHelper.down(local_path, host_path, host, ignored_files) if @down_requested
113
+ rescue
114
+ end
94
115
  mutex.synchronize { @sync_side = nil }
95
116
  end
96
117
  end
@@ -38,6 +38,8 @@ module RemoteSh
38
38
  )
39
39
  SshHelper.current_ports(host_host, remote_blacklist_ports + local_opened_ports).each { |port| SshHelper.close_port(host_host, port) }
40
40
  current_ports(local_blacklisted_ports + remote_opened_ports).each { |port| SshHelper.close_local_port(host_host, port) }
41
+ rescue
42
+ start_or_skip(host_config)
41
43
  ensure
42
44
  SshHelper
43
45
  .current_ports(host_host, remote_blacklist_ports)
@@ -9,6 +9,11 @@ module RemoteSh
9
9
  system("ssh -t #{host} \"cd #{dir}; exec \$SHELL -l\"")
10
10
  end
11
11
 
12
+ def exec(host, dir, args)
13
+ cmd = "cd #{dir}; #{args.join(' ')}"
14
+ system("ssh -t -q #{host} \"#{cmd}\"")
15
+ end
16
+
12
17
  def current_ports(host, blacklist_ports)
13
18
  `ssh #{host} "netstat -tuln | grep LISTEN"`
14
19
  .split("\n")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RemoteSh
4
- VERSION = "0.1.7"
4
+ VERSION = "0.1.8"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remote_sh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Egorov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-09 00:00:00.000000000 Z
11
+ date: 2025-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: filewatcher