-
Notifications
You must be signed in to change notification settings - Fork 33
/
SikuliVersion.cs
78 lines (67 loc) · 1.91 KB
/
SikuliVersion.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
namespace SikuliSharp
{
public interface ISikuliVersion
{
string Arguments { get; }
string ReadyMarker { get; }
string[] InitialCommands { get; }
ISikuliVersion WithProject(string projectPath, string args);
}
public class Sikuli101Version : ISikuliVersion
{
private readonly string _jar;
public string ReadyMarker => "... use ctrl-d to end the session";
public string[] InitialCommands => null;
public string Arguments { get; private set; }
public Sikuli101Version(string sikuliScriptJar)
{
_jar = sikuliScriptJar;
Arguments = string.Format("-jar \"{0}\" -i", _jar);
}
public ISikuliVersion WithProject(string projectPath, string args)
{
Arguments = string.Format("-jar \"{0}\" -r {1} {2}", _jar, projectPath, args);
return this;
}
}
public class Sikuli110Version : ISikuliVersion
{
private readonly string _jar;
public string ReadyMarker => "... use ctrl-d to end the session";
public string[] InitialCommands => null;
public string Arguments { get; private set; }
public Sikuli110Version(string sikuliXJar)
{
_jar = sikuliXJar;
Arguments = string.Format("-jar \"{0}\" -i", _jar);
}
public ISikuliVersion WithProject(string projectPath, string args)
{
Arguments = string.Format("-jar \"{0}\" -r {1} {2}", _jar, projectPath, args);
return this;
}
}
public class Sikuli114Version : ISikuliVersion
{
public string ReadyMarker => null; // "Use exit() or Ctrl-D (i.e. EOF) to exit";
public string[] InitialCommands => new[]
{
"import org.sikuli.script.SikulixForJython",
"from sikuli.Sikuli import *"
};
public string Arguments { get; }
public Sikuli114Version(string apiJar, string jythonJar)
{
Arguments = string.Format(
"-cp \"{0};{1}\" org.python.util.jython",
apiJar,
jythonJar
);
}
public ISikuliVersion WithProject(string projectPath, string args)
{
throw new NotImplementedException();
}
}
}