Class LsCLI
In: lib/davclient/dav-ls.rb
lib/davclient/dav-ls.rb
Parent: Object

Methods

ls   ls  

Public Class methods

[Source]

    # File lib/davclient/dav-ls.rb, line 15
15:   def self.ls(args)
16:     options = read_options(args)
17:     url = args[0]
18:     tmp_cwurl = WebDAV.CWURL
19:     if(not url)then
20:       url = WebDAV.CWURL
21:       if(not url)then
22:         puts "#{$0} ls: no current working url"
23:         puts "Usage: Use '#{$0} cd [url|dir] to set current working url"
24:         exit
25:       end
26:     else
27:       WebDAV.cd(url)  # TODO Hva er denne til?. Crasher 'dav-ls filnavn.html'!
28:     end
29: 
30:     url = WebDAV.CWURL
31:     names = []
32:     items_data = { }
33: 
34:     WebDAV.find(url, :recursive => false ) do |item|
35:       if(options[:showUrl])then
36:         puts item.href
37: 
38:       elsif(options[:longFormat])
39:         locked = item.search("d:lockdiscovery").search("d:owner").inner_text
40:         items_data.merge!(item.basename => [item.href,
41:                                             locked,
42:                                             item.getlastmodified,
43:                                             item.getcontentlength])
44: 
45:       else
46:         # Collect all names in a folder and show them with multiple columns
47: 
48:         name = item.basename
49:         if(item.isCollection?)
50:           path = item.href.sub(/#{name}\/$/,"")
51:         else
52:           path = item.href.sub(/#{name}$/,"")
53:         end
54: 
55:         name +=  "/" if item.isCollection?
56: 
57:         # puts name.ljust(35) + path
58:         names << name
59:       end
60:     end
61: 
62:     if(options[:oneColumn])
63:       puts names.sort.join("\n")
64: 
65:     elsif(options[:longFormat])
66:       max_key_size = max_string_size(items_data.keys)
67:       items_data.keys.sort.each do |key|
68:         locked = ""
69:         locked = "Locked by: " + items_data[key][1] if(items_data[key][1] != "")
70:         puts key.ljust(max_key_size) + "  " + items_data[key][2] +
71:           "  " + items_data[key][3].rjust(12) +
72:           "  " + locked
73:       end
74: 
75:     else
76:       multicolumn_print(names.sort)
77:     end
78: 
79:     # Restore CWURL
80:     WebDAV.cd(tmp_cwurl)
81:   end

[Source]

    # File lib/davclient/dav-ls.rb, line 15
15:   def self.ls(args)
16:     options = read_options(args)
17:     url = args[0]
18:     tmp_cwurl = WebDAV.CWURL
19:     if(not url)then
20:       url = WebDAV.CWURL
21:       if(not url)then
22:         puts "#{$0} ls: no current working url"
23:         puts "Usage: Use '#{$0} cd [url|dir] to set current working url"
24:         exit
25:       end
26:     else
27:       WebDAV.cd(url)  # TODO Hva er denne til?. Crasher 'dav-ls filnavn.html'!
28:     end
29: 
30:     url = WebDAV.CWURL
31:     names = []
32:     items_data = { }
33: 
34:     WebDAV.find(url, :recursive => false ) do |item|
35:       if(options[:showUrl])then
36:         puts item.href
37: 
38:       elsif(options[:longFormat])
39:         locked = item.search("d:lockdiscovery").search("d:owner").inner_text
40:         items_data.merge!(item.basename => [item.href,
41:                                             locked,
42:                                             item.getlastmodified,
43:                                             item.getcontentlength])
44: 
45:       else
46:         # Collect all names in a folder and show them with multiple columns
47: 
48:         name = item.basename
49:         if(item.isCollection?)
50:           path = item.href.sub(/#{name}\/$/,"")
51:         else
52:           path = item.href.sub(/#{name}$/,"")
53:         end
54: 
55:         name +=  "/" if item.isCollection?
56: 
57:         # puts name.ljust(35) + path
58:         names << name
59:       end
60:     end
61: 
62:     if(options[:oneColumn])
63:       puts names.sort.join("\n")
64: 
65:     elsif(options[:longFormat])
66:       max_key_size = max_string_size(items_data.keys)
67:       items_data.keys.sort.each do |key|
68:         locked = ""
69:         locked = "Locked by: " + items_data[key][1] if(items_data[key][1] != "")
70:         puts key.ljust(max_key_size) + "  " + items_data[key][2] +
71:           "  " + items_data[key][3].rjust(12) +
72:           "  " + locked
73:       end
74: 
75:     else
76:       multicolumn_print(names.sort)
77:     end
78: 
79:     # Restore CWURL
80:     WebDAV.cd(tmp_cwurl)
81:   end

[Validate]