ruby-zoom 4.7.5 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,30 +1,55 @@
1
1
  class Zoom::Profile::Ack < Zoom::Profile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
3
- # Special case because of debian
4
- o ||= "ack"
5
- if ((o == "ack") && ScoobyDoo.where_are_you("ack-grep"))
6
- o = "ack-grep"
7
- end
8
-
9
- f ||= "--smart-case"
10
- super(n, o, f, b, a)
2
+ def grep_like_format_flags(all = false)
3
+ super
11
4
  @format_flags = [
12
- "--follow",
13
5
  "-H",
14
6
  "--nobreak",
15
7
  "--nocolor",
8
+ "--nogroup",
16
9
  "--noheading",
17
10
  "-s"
18
11
  ].join(" ")
19
12
  @taggable = true
20
13
  end
21
14
 
15
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
16
+ f ||= "--smart-case"
17
+
18
+ # Special case because of debian
19
+ t ||= "ack"
20
+ if ((t == "ack") && ScoobyDoo.where_are_you("ack-grep"))
21
+ t = "ack-grep"
22
+ end
23
+
24
+ super(n, t, f, b, a)
25
+ end
26
+
27
+ def only_exts
28
+ f = Array.new
29
+ @exts.each do |ext|
30
+ f.push("--type-add \"zoom:ext:#{ext}\"")
31
+ end
32
+ @files.each do |file|
33
+ f.push("--type-add \"zoom:is:#{file}\"")
34
+ end
35
+ f.push("--type zoom") if (!@exts.empty? || !@files.empty?)
36
+ return f.join(" ")
37
+ end
38
+
22
39
  def translate(from)
23
40
  to = Array.new
24
41
  from.each do |flag, value|
25
42
  case flag
43
+ when "all"
44
+ grep_like_format_flags(true)
45
+ when "follow"
46
+ to.push("--follow")
26
47
  when "ignore"
27
48
  value.each do |v|
49
+ # Convert GLOB to regex
50
+ v.gsub!(/\./, "\\.")
51
+ v.gsub!(/\*/, ".*")
52
+
28
53
  to.push("--ignore-dir=\"#{v}\"")
29
54
  to.push("--ignore-file=\"match:/#{v}/\"")
30
55
  end
@@ -1,23 +1,39 @@
1
1
  class Zoom::Profile::Ag < Zoom::Profile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
3
- f ||= "-S"
4
- o ||= "ag"
5
- super(n, o, f, b, a)
2
+ def grep_like_format_flags(all = false)
3
+ super
6
4
  @format_flags = [
7
- "-f",
8
5
  "--filename",
9
6
  "--nobreak",
10
7
  "--nocolor",
11
8
  "--noheading",
9
+ "--numbers",
12
10
  "--silent"
13
11
  ].join(" ")
12
+ @format_flags = "#{@format_flags} -u" if (all)
14
13
  @taggable = true
15
14
  end
16
15
 
16
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
17
+ f ||= "-S"
18
+ t ||= "ag"
19
+ super(n, t, f, b, a)
20
+ end
21
+
22
+ def only_exts_and_files
23
+ if (!@exts.empty? || !@files.empty?)
24
+ return "-G \"\.(#{@exts.join("|")})$|#{@files.join("|")}\""
25
+ end
26
+ return ""
27
+ end
28
+
17
29
  def translate(from)
18
30
  to = Array.new
19
31
  from.each do |flag, value|
20
32
  case flag
33
+ when "all"
34
+ grep_like_format_flags(true)
35
+ when "follow"
36
+ to.push("--follow")
21
37
  when "ignore"
22
38
  value.each do |v|
23
39
  to.push("--ignore=#{v}")
@@ -1,16 +1,60 @@
1
+ require "pathname"
2
+
1
3
  class Zoom::Profile::Find < Zoom::Profile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
4
+ def exe(header)
5
+ cmd = [
6
+ before,
7
+ tool,
8
+ header["paths"],
9
+ flags,
10
+ header["translated"],
11
+ header["args"],
12
+ header["regex"],
13
+ after
14
+ ].join(" ").strip
15
+
16
+ if (header.has_key?("debug") && header["debug"])
17
+ puts cmd
18
+ return ""
19
+ else
20
+ return %x(#{cmd})
21
+ end
22
+ end
23
+
24
+ def grep_like_format_flags(all = false)
25
+ super
26
+ @taggable = true
27
+ end
28
+
29
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
3
30
  a = "-print" if (a.nil? || a.empty?)
4
31
  f ||= ""
5
- o ||= "find"
6
- super(n, o, f, b, a)
7
- @taggable = true
32
+ t ||= "find"
33
+ super(n, t, f, b, a)
34
+ end
35
+
36
+ def preprocess(header)
37
+ # If additional args are passed, then assume regex is actually
38
+ # an arg
39
+ if (!header["args"].empty?)
40
+ header["args"] += " #{header["regex"]}"
41
+ header["regex"] = ""
42
+ end
43
+
44
+ # If regex was provided then assume it's an iname search
45
+ if (!header["regex"].empty?)
46
+ header["regex"] = "-iname \"#{header["regex"]}\""
47
+ end
48
+
49
+ return header
8
50
  end
9
51
 
10
52
  def translate(from)
11
53
  to = Array.new
12
54
  from.each do |flag, value|
13
55
  case flag
56
+ when "follow"
57
+ to.push("-L")
14
58
  when "ignore"
15
59
  value.each do |v|
16
60
  to.push("-name \"#{v}\" -prune -o")
@@ -1,23 +1,43 @@
1
1
  class Zoom::Profile::Grep < Zoom::Profile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
3
- f ||= "-i"
4
- o ||= "grep"
5
- super(n, o, f, b, a)
2
+ def grep_like_format_flags(all = false)
3
+ super
6
4
  @format_flags = [
7
5
  "--color=never",
8
- "-EHInRs",
6
+ "-EHInrs",
9
7
  "--exclude-dir=.bzr",
10
8
  "--exclude-dir=.git",
11
9
  "--exclude-dir=.git-crypt",
12
10
  "--exclude-dir=.svn"
13
11
  ].join(" ")
12
+ @format_flags = "--color=never -aEHnRs" if (all)
14
13
  @taggable = true
15
14
  end
16
15
 
16
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
17
+ f ||= "-i"
18
+ t ||= "grep"
19
+ super(n, t, f, b, a)
20
+ end
21
+
22
+ def only_exts_and_files
23
+ f = Array.new
24
+ @exts.each do |ext|
25
+ f.push("--include=\"*.#{ext}\"")
26
+ end
27
+ @files.each do |file|
28
+ f.push("--include=\"#{file}\"")
29
+ end
30
+ return f.join(" ")
31
+ end
32
+
17
33
  def translate(from)
18
34
  to = Array.new
19
35
  from.each do |flag, value|
20
36
  case flag
37
+ when "all"
38
+ grep_like_format_flags(true)
39
+ when "follow"
40
+ to.push("-R")
21
41
  when "ignore"
22
42
  value.each do |v|
23
43
  to.push("--exclude=#{v} --exclude-dir=#{v}")
@@ -1,16 +1,8 @@
1
1
  class Zoom::SecurityProfile::Passwords < Zoom::SecurityProfile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
3
- case Zoom::ProfileManager.default_profile
4
- when /^ack(-grep)?$/
5
- f ||= "--smart-case"
6
- when "ag", "pt"
7
- f ||= "-SU --hidden"
8
- when "grep"
9
- f ||= "-ai"
10
- end
11
-
12
- super(n, nil, f, b, a)
13
- @pattern = "(key|pa?ss(w(o?r)?d)?)[^:=,>]? *[:=,>]"
14
- @taggable = true
2
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
3
+ super(n, t, f, b, a)
4
+ # Don't search binary files
5
+ # grep_like_format_flags(true)
6
+ @regex = "(key|pa?ss(w(o?r)?d)?)[^:=,>]? *[:=,>]"
15
7
  end
16
8
  end
@@ -1,16 +1,32 @@
1
1
  class Zoom::Profile::Pt < Zoom::Profile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
3
- f ||= "-S"
4
- o ||= "pt"
5
- super(n, o, f, b, a)
6
- @format_flags = "-e -f --nocolor --nogroup"
2
+ def grep_like_format_flags(all = false)
3
+ super
4
+ @format_flags = "-e --nocolor --nogroup --numbers"
5
+ @format_flags = "#{@format_flags} --hidden -U" if (all)
7
6
  @taggable = true
8
7
  end
9
8
 
9
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
10
+ f ||= "-S"
11
+ t ||= "pt"
12
+ super(n, t, f, b, a)
13
+ end
14
+
15
+ def only_exts_and_files
16
+ if (!@exts.empty? || !@files.empty?)
17
+ return "-G \"\.(#{@exts.join("|")})$|#{@files.join("|")}\""
18
+ end
19
+ return ""
20
+ end
21
+
10
22
  def translate(from)
11
23
  to = Array.new
12
24
  from.each do |flag, value|
13
25
  case flag
26
+ when "all"
27
+ grep_like_format_flags(true)
28
+ when "follow"
29
+ to.push("--follow")
14
30
  when "ignore"
15
31
  value.each do |v|
16
32
  to.push("--ignore=#{v}")
@@ -0,0 +1,51 @@
1
+ class Zoom::Profile::Rg < Zoom::Profile
2
+ def grep_like_format_flags(all = false)
3
+ super
4
+ @format_flags = [
5
+ "--color never",
6
+ "-H",
7
+ "-n",
8
+ "--no-heading",
9
+ "--no-messages"
10
+ ].join(" ")
11
+ @format_flags = "#{@format_flags} -uuu" if (all)
12
+ @taggable = true
13
+ end
14
+
15
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
16
+ f ||= "-S"
17
+ t ||= "rg"
18
+ super(n, t, f, b, a)
19
+ end
20
+
21
+ def only_exts_and_files
22
+ f = Array.new
23
+ @exts.each do |ext|
24
+ f.push("--type-add \"zoom:*.#{ext}\"")
25
+ end
26
+ @files.each do |file|
27
+ f.push("--type-add \"zoom:#{file}\"")
28
+ end
29
+ f.push("-t zoom") if (!@exts.empty? || !@files.empty?)
30
+ return f.join(" ")
31
+ end
32
+
33
+ def translate(from)
34
+ to = Array.new
35
+ from.each do |flag, value|
36
+ case flag
37
+ when "all"
38
+ grep_like_format_flags(true)
39
+ when "follow"
40
+ to.push("--follow")
41
+ when "ignore"
42
+ value.each do |v|
43
+ to.push("--iglob=\"!#{v}\"")
44
+ end
45
+ when "word-regexp"
46
+ to.push("-w")
47
+ end
48
+ end
49
+ return to.join(" ")
50
+ end
51
+ end
@@ -1,35 +1,37 @@
1
1
  class Zoom::SecurityProfile::UnsafeC < Zoom::SecurityProfile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
3
- case Zoom::ProfileManager.default_profile
4
- when /^ack(-grep)?$/
5
- f ||= "--smart-case --cc --cpp"
6
- when "ag", "pt"
7
- f ||= "-S -G \"\\.(c(c|pp)?|h(pp)?)$\""
8
- when "grep"
9
- f ||= [
10
- "-i",
11
- "--include=\"*.[ch]\"",
12
- "--include=\"*.[ch]pp\"",
13
- "--include=\"*.cc\""
14
- ].join(" ")
15
- end
2
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
3
+ t = Zoom::ProfileManager.default_tool
16
4
 
17
- super(n, nil, f, b, a)
18
- @pattern = [
19
- "(^|[^\\nA-Za-z_])",
20
- "(",
21
- [
22
- "_splitpath",
23
- "ato[fil]",
24
- "gets",
25
- "makepath",
26
- "(sn?)?scanf",
27
- "str(cat|cpy|len)",
28
- "v?sprintf"
29
- ].join("|"),
30
- ")",
31
- "\\("
5
+ super(n, t, f, b, a)
6
+ @exts = [
7
+ "C",
8
+ "c",
9
+ "cc",
10
+ "cpp",
11
+ "cxx",
12
+ "H",
13
+ "h",
14
+ "hh",
15
+ "hpp",
16
+ "hxx",
17
+ "m",
18
+ "tpp",
19
+ "xs"
20
+ ]
21
+ functions = [
22
+ "_splitpath",
23
+ "ato[fil]",
24
+ "gets",
25
+ "makepath",
26
+ "popen",
27
+ "(sn?)?scanf",
28
+ "str(cat|cpy|len)",
29
+ "v?sprintf"
30
+ ]
31
+ start_or_not_variable = "(^|[^\\nA-Za-z_])"
32
+ @regex = [
33
+ start_or_not_variable,
34
+ "(#{functions.join("|")})\\(",
32
35
  ].join
33
- @taggable = true
34
36
  end
35
37
  end
@@ -1,32 +1,19 @@
1
1
  class Zoom::SecurityProfile::UnsafeJava < Zoom::SecurityProfile
2
- def initialize(n = nil, o = nil, f = nil, b = nil, a = nil)
3
- case Zoom::ProfileManager.default_profile
4
- when /^ack(-grep)?$/
5
- f ||= "--smart-case --java"
6
- when "ag", "pt"
7
- f ||= "-S -G \"\\.(java|properties)$\""
8
- when "grep"
9
- f ||= [
10
- "-i",
11
- "--include=\"*.java\"",
12
- "--include=\"*.properties\""
13
- ].join(" ")
14
- end
2
+ def initialize(n = nil, t = nil, f = nil, b = nil, a = nil)
3
+ t = Zoom::ProfileManager.default_tool
15
4
 
16
- super(n, nil, f, b, a)
17
- @pattern = [
18
- "(sun\\.misc\\.)?Unsafe",
19
- "|",
20
- "(",
21
- [
22
- "\\.exec",
23
- "\\.getRuntime",
24
- "readObject",
25
- "Runtime"
26
- ].join("|"),
27
- ")",
28
- "\\("
29
- ].join
30
- @taggable = true
5
+ super(n, t, f, b, a)
6
+ @exts = ["java", "properties"]
7
+ functions = [
8
+ "\\.exec",
9
+ "\\.getRuntime",
10
+ "readObject",
11
+ "Runtime"
12
+ ]
13
+ imports = "(sun\\.misc\\.)?Unsafe"
14
+ @regex = [
15
+ imports,
16
+ "(#{functions.join("|")})\\(",
17
+ ].join("|")
31
18
  end
32
19
  end