Skip to content

Commit 9abb3d2

Browse files
authored
Merge pull request #3 from dmpas/feature/os2-prepared
Поддержка os2
2 parents 7dcb5e8 + be79f09 commit 9abb3d2

33 files changed

+714
-211
lines changed

.github/workflows/ospx.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: OSPX
2+
on: [push, pull_request]
3+
jobs:
4+
build:
5+
runs-on: windows-latest
6+
steps:
7+
- uses: actions/checkout@v4
8+
with:
9+
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
10+
- name: preinstall os2
11+
shell: cmd
12+
run: |
13+
mkdir os2
14+
cd os2
15+
curl https://oscript.io/downloads/night-build/x64/fdd --output fdd.zip
16+
7z x fdd.zip > NUL
17+
c:\windows\system32\cmd.exe /C bin\oscript.bat -version
18+
c:\windows\system32\cmd.exe /C bin\oscript.bat lib\opm\src\cmd\opm.os install opm
19+
cd ..
20+
- name: preinstall os1
21+
shell: cmd
22+
run: |
23+
mkdir os1
24+
cd os1
25+
curl https://oscript.io/downloads/latest/zip --output latest.zip
26+
7z x latest.zip > NUL
27+
bin\oscript.exe -version
28+
bin\oscript.exe lib\opm\src\cmd\opm.os install opm
29+
cd ..
30+
- name: build
31+
run: dotnet publish --configuration Release
32+
- name: pack-and-install
33+
shell: cmd
34+
run: |
35+
cd oscript-sql\bin\Release\net6.0\publish
36+
del ScriptEngine*.dll NewtonSoft*.dll DotNetZip*.dll OneScript*.dll *.pdb
37+
cd ..\..\..\..\..
38+
xcopy /E oscript-sql\bin\Release\net6.0\publish\* oslib\Components\dotnet\
39+
cd oslib
40+
c:\windows\system32\cmd.exe /C ..\os2\bin\oscript.bat ..\os2\lib\opm\src\cmd\opm.os build .
41+
for %%X in (*.ospx) do (c:\windows\system32\cmd.exe /C ..\os2\bin\oscript.bat ..\os2\lib\opm\src\cmd\opm.os install -f %%X )
42+
for %%X in (*.ospx) do (..\os1\bin\oscript.exe ..\os1\lib\opm\src\cmd\opm.os install -f %%X )
43+
cd ..
44+
- name: test os1
45+
env:
46+
OSLIB_LOADER_TRACE: 1
47+
run: |
48+
os1\bin\oscript.exe testcomponent.os
49+
- name: test os2
50+
env:
51+
OSLIB_LOADER_TRACE: 1
52+
run: |
53+
c:\windows\system32\cmd.exe /C os2\bin\oscript.bat testcomponent.os
54+

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ bin
22
obj
33
/packages
44
/.vs
5-
*.sqlite
5+
*.sqlite
6+
.idea/

TestApp/Program.cs

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/*----------------------------------------------------------
2+
This Source Code Form is subject to the terms of the
3+
Mozilla Public License, v.2.0. If a copy of the MPL
4+
was not distributed with this file, You can obtain one
5+
at http://mozilla.org/MPL/2.0/.
6+
----------------------------------------------------------*/
7+
using System;
8+
using OneScript.StandardLibrary;
9+
using ScriptEngine.HostedScript;
10+
using ScriptEngine.HostedScript.Library;
11+
using ScriptEngine.Hosting;
12+
13+
namespace TestApp
14+
{
15+
class MainClass : IHostApplication
16+
{
17+
18+
static readonly string SCRIPT = @"// Отладочный скрипт в котором уже подключена наша компонента
19+
Соединение = Новый Соединение();
20+
Соединение.ТипСУБД = Соединение.ТипыСУБД.sqlite;
21+
Соединение.ИмяБазы = "":memory:"";
22+
Соединение.Открыть();
23+
24+
Запрос = Новый Запрос();
25+
Запрос.УстановитьСоединение(Соединение);
26+
Запрос.Текст = ""Create table users (id integer, name text)"";
27+
Запрос.ВыполнитьКоманду();
28+
29+
Запрос.Текст = ""insert into users (id, name) values(1, @name)"";
30+
Запрос.УстановитьПараметр(""name"", ""Сергей"");
31+
Запрос.ВыполнитьКоманду();
32+
33+
Запрос.Текст = ""insert into users (id, name) values(@id, @name)"";
34+
Запрос.УстановитьПараметр(""id"", ""2"");
35+
Запрос.УстановитьПараметр(""name"", ""Оксана"");
36+
Запрос.ВыполнитьКоманду();
37+
38+
Запрос2 = Новый Запрос();
39+
Запрос2.УстановитьСоединение(Соединение);
40+
Запрос2.Текст = ""select * from users where id = @id"";
41+
42+
Для Инд = 1 По 2 Цикл
43+
Запрос2.УстановитьПараметр(""id"", Инд);
44+
ТЗ = Запрос2.Выполнить().Выгрузить();
45+
46+
Для каждого Стр Из ТЗ Цикл
47+
Сообщить(""Имя: "" + Стр.Name + "" ("" + Стр.id + "")"")
48+
КонецЦикла;
49+
50+
КонецЦикла;
51+
52+
Соединение.Закрыть();"
53+
;
54+
55+
public static HostedScriptEngine StartEngine()
56+
{
57+
var mainEngine = DefaultEngineBuilder.Create()
58+
.SetDefaultOptions()
59+
.SetupEnvironment(envSetup =>
60+
{
61+
envSetup.AddAssembly(typeof(OScriptSql.DBConnector).Assembly);
62+
})
63+
.Build();
64+
var engine = new HostedScriptEngine(mainEngine);
65+
engine.Initialize();
66+
67+
return engine;
68+
}
69+
70+
public static void Main(string[] args)
71+
{
72+
var engine = StartEngine();
73+
var script = engine.Loader.FromString(SCRIPT);
74+
var process = engine.CreateProcess(new MainClass(args), script);
75+
76+
var result = process.Start();
77+
78+
Console.WriteLine("Result = {0}", result);
79+
}
80+
81+
private string[] args;
82+
83+
public MainClass(string[] args)
84+
{
85+
this.args = args;
86+
}
87+
88+
public void Echo(string str, MessageStatusEnum status = MessageStatusEnum.Ordinary)
89+
{
90+
Console.WriteLine(str);
91+
}
92+
93+
public void ShowExceptionInfo(Exception exc)
94+
{
95+
Console.WriteLine(exc.ToString());
96+
}
97+
98+
public bool InputString(out string result, string prompt, int maxLen, bool multiline)
99+
{
100+
throw new NotImplementedException();
101+
}
102+
103+
public bool InputString(out string result, int maxLen)
104+
{
105+
throw new NotSupportedException();
106+
}
107+
108+
public string[] GetCommandLineArguments()
109+
{
110+
return args;
111+
}
112+
}
113+
}

TestApp/TestApp.csproj

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<RootNamespace>OScriptSql</RootNamespace>
6+
<PackageVersion>2.0.0</PackageVersion>
7+
<AssemblyVersion>2.0.0</AssemblyVersion>
8+
<FileVersion>2.0.0</FileVersion>
9+
<OutputType>Exe</OutputType>
10+
</PropertyGroup>
11+
12+
<ItemGroup>
13+
<ProjectReference Include="..\oscript-sql\oscript-sql.csproj" />
14+
</ItemGroup>
15+
16+
<ItemGroup>
17+
<PackageReference Include="OneScript.Hosting" Version="2.0.0-rc.7" />
18+
</ItemGroup>
19+
20+
</Project>

appveyor.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
version: 1.3.2-{build}
2+
image: Visual Studio 2022
3+
environment:
4+
main_project: oscript-sql
5+
before_build:
6+
- ps: nuget restore
7+
init:
8+
- REG ADD "HKLM\Software\Microsoft\Command Processor" /v Autorun /t REG_SZ /d "chcp 65001>nul" /f
9+
- ps: Set-WinSystemLocale ru-RU
10+
- ps: Start-Sleep -s 15
11+
- ps: Restart-Computer
12+
install:
13+
- cmd: >-
14+
mkdir os2
15+
16+
cd os2
17+
18+
appveyor DownloadFile https://oscript.io/downloads/preview/OneScript-2.0.0-rc.7-fdd-x64.zip -FileName fdd.zip
19+
20+
7z x fdd.zip > NUL
21+
22+
bin\oscript.bat -version
23+
24+
bin\oscript.bat lib\opm\src\cmd\opm.os install opm
25+
26+
cd ..
27+
28+
- cmd: >-
29+
mkdir os1
30+
31+
cd os1
32+
33+
appveyor DownloadFile https://oscript.io/downloads/latest/zip -FileName latest.zip
34+
35+
7z x latest.zip > NUL
36+
37+
bin\oscript.exe -version
38+
39+
bin\oscript.exe lib\opm\src\cmd\opm.os install opm
40+
41+
cd ..
42+
43+
- cmd: >-
44+
45+
appveyor DownloadFile https://github.com/dmpas/OneScriptDocumenter/releases/download/1.0.13/documenter.zip -FileName OneScriptDocumenter.zip
46+
47+
7z x OneScriptDocumenter.zip > NUL
48+
49+
build:
50+
verbosity: minimal
51+
configuration: Release
52+
test_script:
53+
- cmd: dotnet nuget locals all --clear
54+
- cmd: >-
55+
set OSLIB_LOADER_TRACE=1
56+
57+
os2\bin\oscript.bat testcomponent.os
58+
59+
- cmd: >-
60+
set OSLIB_LOADER_TRACE=1
61+
62+
os1\bin\oscript.exe testcomponent.os
63+
64+
after_build:
65+
- ps: dotnet publish --no-build --configuration $env:Configuration
66+
- cmd: >-
67+
68+
set BUILDDIR=%main_project%\bin\%CONFIGURATION%\net6.0\publish
69+
70+
mkdir oslib\Components\dotnet
71+
72+
OneScriptDocumenter.exe json oslib\Components\dotnet\syntaxHelp.json %BUILDDIR%\1script_%main_project%.dll
73+
74+
del /F /Q %BUILDDIR%\ScriptEngine*.* %BUILDDIR%\NewtonSoft*.* %BUILDDIR%\DotNetZip*.*
75+
76+
xcopy /E %BUILDDIR%\* oslib\Components\dotnet\
77+
78+
cd oslib
79+
80+
..\os2\bin\oscript.bat ..\os2\lib\opm\src\cmd\opm.os build .
81+
82+
for %%X in (*.ospx) do (..\os2\bin\oscript.bat ..\os2\lib\opm\src\cmd\opm.os install -f %%X )
83+
84+
for %%X in (*.ospx) do (..\os1\bin\oscript.exe ..\os1\lib\opm\src\cmd\opm.os install -f %%X )
85+
86+
cd ..
87+
88+
artifacts:
89+
- path: oslib\*.ospx
90+
name: sql

changelog.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2024-11-04 dmpas <[email protected]>
2+
[added] Поддержка 2.0
3+
14
2018-12-03 ret-Phoenix <[email protected]>
25
[added] Метод Пустой() - Булево.
36

global.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"sdk": {
3+
"version": "6.0.0",
4+
"rollForward": "latestMajor",
5+
"allowPrerelease": true
6+
}
7+
}

oscript-sql.sln

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@ VisualStudioVersion = 14.0.25123.0
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "oscript-sql", "oscript-sql\oscript-sql.csproj", "{EA173D06-CCD2-45D5-A263-DC866289517A}"
77
EndProject
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApp", "TestApp\TestApp.csproj", "{EEA2A8E1-1094-4593-9B5E-6C7A626C1F13}"
9+
EndProject
810
Global
911
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1012
Debug|Any CPU = Debug|Any CPU
11-
oscript-15|Any CPU = oscript-15|Any CPU
1213
Release|Any CPU = Release|Any CPU
13-
test|Any CPU = test|Any CPU
1414
EndGlobalSection
1515
GlobalSection(ProjectConfigurationPlatforms) = postSolution
1616
{EA173D06-CCD2-45D5-A263-DC866289517A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1717
{EA173D06-CCD2-45D5-A263-DC866289517A}.Debug|Any CPU.Build.0 = Debug|Any CPU
18-
{EA173D06-CCD2-45D5-A263-DC866289517A}.oscript-15|Any CPU.ActiveCfg = oscript-15|Any CPU
19-
{EA173D06-CCD2-45D5-A263-DC866289517A}.oscript-15|Any CPU.Build.0 = oscript-15|Any CPU
2018
{EA173D06-CCD2-45D5-A263-DC866289517A}.Release|Any CPU.ActiveCfg = Release|Any CPU
2119
{EA173D06-CCD2-45D5-A263-DC866289517A}.Release|Any CPU.Build.0 = Release|Any CPU
22-
{EA173D06-CCD2-45D5-A263-DC866289517A}.test|Any CPU.ActiveCfg = test|Any CPU
23-
{EA173D06-CCD2-45D5-A263-DC866289517A}.test|Any CPU.Build.0 = test|Any CPU
20+
{EEA2A8E1-1094-4593-9B5E-6C7A626C1F13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21+
{EEA2A8E1-1094-4593-9B5E-6C7A626C1F13}.Debug|Any CPU.Build.0 = Debug|Any CPU
22+
{EEA2A8E1-1094-4593-9B5E-6C7A626C1F13}.Release|Any CPU.ActiveCfg = Release|Any CPU
23+
{EEA2A8E1-1094-4593-9B5E-6C7A626C1F13}.Release|Any CPU.Build.0 = Release|Any CPU
2424
EndGlobalSection
2525
GlobalSection(SolutionProperties) = preSolution
2626
HideSolutionNode = FALSE

oscript-sql/DBConnector.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
using System;
44
using ScriptEngine.Machine.Contexts;
5+
using OneScript.Contexts;
56
using System.Data.SqlClient;
67
using System.Data.Common;
78
using System.Data;

oscript-sql/EnumDBType.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using ScriptEngine.Machine.Contexts;
2+
using OneScript.Contexts;
23

34
namespace OScriptSql
45
{

0 commit comments

Comments
 (0)