FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
OneScript/src/oscript/ExecuteScriptBehavior.cs at develop · ivtroitskiy/OneScript · GitHub
ivtroitskiy
/
OneScript
Public
forked from
EvilBeaver/OneScript
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
OneScript
/
src
/
oscript
/
ExecuteScriptBehavior.cs
Copy path
More file actions
More file actions
Latest commit
History
History
History
111 lines (89 loc) · 3.21 KB
Breadcrumbs
OneScript
/
src
/
oscript
/
ExecuteScriptBehavior.cs
Copy path
File metadata and controls
111 lines (89 loc) · 3.21 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*----------------------------------------------------------
This Source Code Form is subject to the terms of the
Mozilla Public License, v.2.0. If a copy of the MPL
was not distributed with this file, You can obtain one
at http://mozilla.org/MPL/2.0/.
----------------------------------------------------------*/
using
System
;
using
OneScript
.
StandardLibrary
;
using
ScriptEngine
;
using
ScriptEngine
.
HostedScript
;
using
ScriptEngine
.
Hosting
;
using
ScriptEngine
.
Machine
;
namespace
oscript
{
class
ExecuteScriptBehavior
:
AppBehavior
,
IHostApplication
,
ISystemLogWriter
{
protected
string
[
]
_scriptArgs
;
protected
string
_path
;
public
ExecuteScriptBehavior
(
string
path
,
string
[
]
args
)
{
_scriptArgs
=
args
;
_path
=
path
;
}
public
IDebugController
DebugController
{
get
;
set
;
}
public
string
CodeStatFile
{
get
;
set
;
}
public
bool
CodeStatisticsEnabled
=>
CodeStatFile
!=
null
;
public
override
int
Execute
(
)
{
if
(
!
System
.
IO
.
File
.
Exists
(
_path
)
)
{
Echo
(
$
"Script file is not found '
{
_path
}
'"
)
;
return
2
;
}
SystemLogger
.
SetWriter
(
this
)
;
var
builder
=
ConsoleHostBuilder
.
Create
(
_path
)
;
builder
.
WithDebugger
(
DebugController
)
;
CodeStatProcessor
codeStatProcessor
=
null
;
if
(
CodeStatisticsEnabled
)
{
codeStatProcessor
=
new
CodeStatProcessor
(
)
;
builder
.
Services
.
RegisterSingleton
<
ICodeStatCollector
>
(
codeStatProcessor
)
;
}
var
hostedScript
=
ConsoleHostBuilder
.
Build
(
builder
)
;
var
source
=
hostedScript
.
Loader
.
FromFile
(
_path
)
;
Process
process
;
try
{
process
=
hostedScript
.
CreateProcess
(
this
,
source
)
;
}
catch
(
Exception
e
)
{
ShowExceptionInfo
(
e
)
;
return
1
;
}
var
result
=
process
.
Start
(
)
;
hostedScript
.
Dispose
(
)
;
if
(
codeStatProcessor
!=
null
)
{
codeStatProcessor
.
EndCodeStat
(
)
;
var
codeStat
=
codeStatProcessor
.
GetStatData
(
)
;
var
statsWriter
=
new
CodeStatWriter
(
CodeStatFile
,
CodeStatWriterType
.
JSON
)
;
statsWriter
.
Write
(
codeStat
)
;
}
return
result
;
}
#region IHostApplication Members
public
void
Echo
(
string
text
,
MessageStatusEnum
status
=
MessageStatusEnum
.
Ordinary
)
{
ConsoleHostImpl
.
Echo
(
text
,
status
)
;
}
public
void
ShowExceptionInfo
(
Exception
exc
)
{
ConsoleHostImpl
.
ShowExceptionInfo
(
exc
)
;
}
public
bool
InputString
(
out
string
result
,
string
prompt
,
int
maxLen
,
bool
multiline
)
{
return
ConsoleHostImpl
.
InputString
(
out
result
,
prompt
,
maxLen
,
multiline
)
;
}
public
string
[
]
GetCommandLineArguments
(
)
{
return
_scriptArgs
;
}
#endregion
public
void
Write
(
string
text
)
{
Console
.
Error
.
WriteLine
(
text
)
;
}
}
}
Back
|
FazBrowse Home
|
New Git URL