Skip to content

Commit 1957976

Browse files
committed
fixed the bug the external reference definiton file cannot be loaded
1 parent a495c46 commit 1957976

4 files changed

Lines changed: 22 additions & 7 deletions

File tree

build/Common.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<Version>0.2.0</Version>
3+
<Version>0.2.2</Version>
44
<Company>SciSharp</Company>
55
<Product>SciSharp.ICSharpCore</Product>
66
<Authors>Kerry Jiang, Haiping Chen</Authors>

kernel-spec/kernel-docker.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"argv": ["icsharp-kernel", "{connection_file}"],
2+
"argv": ["icsharp-kernel", "{connection_file}", "/scisharp/refs.txt"],
33
"display_name": "SciSharp Cube",
44
"language": "csharp"
5-
}
5+
}

src/ICSharpCore/Program.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.Extensions.DependencyInjection;
1+
using ICSharpCore.Script;
2+
using Microsoft.Extensions.DependencyInjection;
23
using Microsoft.Extensions.Logging;
34
using Microsoft.Extensions.Logging.Console;
45
using Newtonsoft.Json;
@@ -33,6 +34,11 @@ public static void Main(string[] args)
3334
var connInfo = JsonConvert.DeserializeObject<ConnInfo>(json);
3435
Console.WriteLine(JsonConvert.SerializeObject(connInfo));
3536

37+
if (args.Length > 1)
38+
{
39+
InteractiveScriptEngine.RefsFilePath = args[1];
40+
}
41+
3642
// Handling messages
3743

3844
// After reading the connection file and binding to the necessary sockets,

src/ICSharpCore/Script/InteractiveScriptEngine.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,18 @@ public class InteractiveScriptEngine
3939

4040
private string[] _references;
4141

42+
public static string RefsFilePath { get; set; }
43+
4244
public InteractiveScriptEngine(string currentDir, ILogger logger)
4345
{
4446
_currentDirectory = currentDir;
4547
_logger = logger;
4648

4749
_scriptOptions = CreateScriptOptions();
4850

49-
var referencesFile = Path.Combine(Directory.GetCurrentDirectory(), "refs.txt");
51+
var referencesFile = RefsFilePath;
5052

51-
if (File.Exists(referencesFile))
53+
if (!string.IsNullOrEmpty(referencesFile) && File.Exists(referencesFile))
5254
{
5355
_references = File.ReadAllLines(referencesFile, Encoding.UTF8);
5456
}
@@ -94,12 +96,19 @@ public async Task<object> ExecuteAsync(string statement)
9496
"using static ICSharpCore.Primitives.DisplayDataEmitter;"
9597
};
9698

97-
var refsFromFile = string.Empty;
9899

99100
var references = _references;
100101

101102
if (references != null && references.Any())
102103
{
104+
foreach (var line in references)
105+
{
106+
if (line.StartsWith("#r ") || line.StartsWith("#load "))
107+
{
108+
TryLoadReferenceFromScript(line);
109+
}
110+
}
111+
103112
usingStatements = references.Union(usingStatements).ToArray();
104113
}
105114

0 commit comments

Comments
 (0)