Module: SMB::ClientHelper
- Included in:
- Client
- Defined in:
- lib/smb/client/client_helper.rb,
lib/smb/client/ls_item.rb
Overview
Helper methods to get simpler access to smbclient’s capabilities
Defined Under Namespace
Classes: LsItem
Instance Method Summary collapse
-
#del(path, raise = true) ⇒ Boolean
(also: #rm)
Delete a remote file.
-
#exist?(mask) ⇒ Boolean
Returns ‘true` if mask exist on server.
-
#get(from, to = nil, overwrite = false, raise = true) ⇒ String
Receive a file from the smb server to local.
-
#ls(mask = '', raise = true) ⇒ Array
(also: #dir)
List contents of a remote directory
false
, an empty array will be returned. -
#mkdir(path, raise = true) ⇒ Boolean
Creates a new directory on the server.
-
#put(from, to, overwrite = false, raise = true) ⇒ Boolean
Upload a local file.
-
#read(from, overwrite = false, raise = true) ⇒ String
Reads a remote file and return its content.
-
#rmdir(path, raise = true) ⇒ Boolean
Removes a directory on the server.
-
#write(content, to, overwrite = false, raise = true) ⇒ Boolean
Writes content to remote file.
Instance Method Details
#del(path, raise = true) ⇒ Boolean Also known as: rm
Delete a remote file
96 97 98 99 100 101 102 103 |
# File 'lib/smb/client/client_helper.rb', line 96 def del(path, raise = true) path = '"' + path + '"' if path.include? ' ' exec 'del ' + path true rescue Client::RuntimeError => e raise e if raise false end |
#exist?(mask) ⇒ Boolean
Returns ‘true` if mask exist on server
149 150 151 152 |
# File 'lib/smb/client/client_helper.rb', line 149 def exist?(mask) ls_items = ls mask, false !ls_items.empty? end |
#get(from, to = nil, overwrite = false, raise = true) ⇒ String
Receive a file from the smb server to local. If to
was not passed, a tempfile will be generated.
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/smb/client/client_helper.rb', line 115 def get(from, to = nil, overwrite = false, raise = true) # Create a new tempfile but delete it # The tempfile.path should be free to use now tempfile = Tempfile.new to ||= tempfile.path tempfile.unlink if !overwrite && File.exist?(to) raise Client::RuntimeError, "File [#{to}] already exist locally" end from = '"' + from + '"' if from.include? ' ' exec 'get ' + from + ' ' + to to rescue Client::RuntimeError => e raise e if raise false end |
#ls(mask = '', raise = true) ⇒ Array Also known as: dir
List contents of a remote directory false
, an empty array will be returned
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/smb/client/client_helper.rb', line 14 def ls(mask = '', raise = true) ls_items = [] mask = '"' + mask + '"' if mask.include? ' ' output = exec 'ls ' + mask output.lines.each do |line| ls_item = LsItem.from_line(line) ls_items << ls_item if ls_item end ls_items rescue Client::RuntimeError => e raise e if raise [] end |
#mkdir(path, raise = true) ⇒ Boolean
Creates a new directory on the server
35 36 37 38 39 40 41 42 |
# File 'lib/smb/client/client_helper.rb', line 35 def mkdir(path, raise = true) path = '"' + path + '"' if path.include? ' ' exec 'mkdir ' + path true rescue Client::RuntimeError => e raise e if raise false end |
#put(from, to, overwrite = false, raise = true) ⇒ Boolean
Upload a local file
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/smb/client/client_helper.rb', line 63 def put(from, to, overwrite = false, raise = true) ls_items = ls to, false if !overwrite && !ls_items.empty? raise Client::RuntimeError, "File [#{to}] already exist" end from = '"' + from + '"' if from.include? ' ' to = '"' + to + '"' if to.include? ' ' exec 'put ' + from + ' ' + to true rescue Client::RuntimeError => e raise e if raise false end |
#read(from, overwrite = false, raise = true) ⇒ String
Reads a remote file and return its content
138 139 140 141 142 143 144 |
# File 'lib/smb/client/client_helper.rb', line 138 def read(from, overwrite = false, raise = true) tempfile = Tempfile.new to = tempfile.path tempfile.unlink get from, to, overwrite, raise File.read to end |
#rmdir(path, raise = true) ⇒ Boolean
Removes a directory on the server
48 49 50 51 52 53 54 55 |
# File 'lib/smb/client/client_helper.rb', line 48 def rmdir(path, raise = true) path = '"' + path + '"' if path.include? ' ' exec 'rmdir ' + path true rescue Client::RuntimeError => e raise e if raise false end |
#write(content, to, overwrite = false, raise = true) ⇒ Boolean
Writes content to remote file
83 84 85 86 87 88 89 90 |
# File 'lib/smb/client/client_helper.rb', line 83 def write(content, to, overwrite = false, raise = true) # This is just a hack around +put+ tempfile = Tempfile.new tempfile.write content tempfile.close put tempfile.path, to, overwrite, raise end |