Skip to content

Commit cbc9dea

Browse files
authored
Merge pull request Stivo182#3 from Stivo182/refactor
Рефакторинг сборки и структуры
2 parents 90e2f43 + 1eb7dd4 commit cbc9dea

26 files changed

+147
-148
lines changed

.github/workflows/release.yml

-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ on:
88
env:
99
PACKAGE_MASK: "compressor-*.ospx"
1010
OSCRIPT_VERSION: "default"
11-
ADDITIONAL_OSCRIPT_PACKAGES: '1commands'
1211

1312
jobs:
1413
build:
@@ -46,9 +45,6 @@ jobs:
4645
opm install opm
4746
opm install -l
4847
49-
- name: Установка дополнительных пакетов
50-
run: opm install ${{ env.ADDITIONAL_OSCRIPT_PACKAGES }}
51-
5248
- name: Сборка пакета
5349
run: opm build
5450

.github/workflows/test.yml

-15
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ on:
66

77
env:
88
TEST_SCRIPT_PATH: './tasks/test.os'
9-
ADDITIONAL_OSCRIPT_PACKAGES: '1commands'
109

1110
jobs:
1211
build:
@@ -35,23 +34,9 @@ jobs:
3534
run: |
3635
opm install opm
3736
opm install -l --dev
38-
39-
- name: Установка дополнительных пакетов
40-
run: opm install ${{ env.ADDITIONAL_OSCRIPT_PACKAGES }}
4137
4238
- name: Сборка пакета
4339
run: opm build
44-
45-
- name: Вычисление имени пакета
46-
shell: bash
47-
id: extract_package_name
48-
run: |
49-
set -ex
50-
version=$(cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//' || true)
51-
echo "name=compressor-$version.ospx" >> $GITHUB_OUTPUT
52-
53-
- name: Установка пакета
54-
run: opm install --dev ${{ steps.extract_package_name.outputs.name }}
5540

5641
- name: Тестирование
5742
run: oscript ${{ env.TEST_SCRIPT_PATH }}

.gitignore

+16-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1-
/Components
2-
*/packages
3-
/oscript_modules
4-
.vs
5-
obj
6-
*/bin/Release
7-
*/bin/Debug
8-
*.ospx
1+
# OneScript
2+
Components/
3+
out/
4+
oscript_modules/
5+
*.ospx
6+
7+
# VS Code
8+
.vscode/
9+
10+
# .NET
11+
[Dd]ebug/
12+
[Rr]elease/
13+
[Bb]in/
14+
[Oo]bj/
15+
16+
.vs/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
2+
#Использовать 1commands
3+
#Использовать fs
4+
5+
Процедура Подготовить() Экспорт
6+
7+
ИменаПроектов = Новый Массив();
8+
ИменаПроектов.Добавить("OneScriptCompressor");
9+
10+
ИменаФайловБиблиотек = Новый Соответствие();
11+
ИменаФайловБиблиотек.Вставить("1script_compressor.dll");
12+
13+
ИменаФайловБиблиотек.Вставить("EasyCompressor.dll");
14+
ИменаФайловБиблиотек.Вставить("EasyCompressor.Snappier.dll");
15+
ИменаФайловБиблиотек.Вставить("EasyCompressor.LZ4.dll");
16+
ИменаФайловБиблиотек.Вставить("EasyCompressor.ZstdSharp.dll");
17+
18+
ИменаФайловБиблиотек.Вставить("BrotliSharpLib.dll", "net4");
19+
ИменаФайловБиблиотек.Вставить("Snappier.dll");
20+
ИменаФайловБиблиотек.Вставить("ZstdSharp.dll");
21+
ИменаФайловБиблиотек.Вставить("K4os.Compression.LZ4.dll");
22+
ИменаФайловБиблиотек.Вставить("K4os.Compression.LZ4.Streams.dll");
23+
ИменаФайловБиблиотек.Вставить("K4os.Hash.xxHash.dll");
24+
25+
ИменаФайловБиблиотек.Вставить("System.Memory.dll", "net4");
26+
ИменаФайловБиблиотек.Вставить("System.Buffers.dll", "net4");
27+
ИменаФайловБиблиотек.Вставить("System.Runtime.CompilerServices.Unsafe.dll", "net4");
28+
ИменаФайловБиблиотек.Вставить("System.Threading.Tasks.Extensions.dll", "net4");
29+
30+
СобратьБиблиотекуDotNET(ИменаПроектов);
31+
ПодготовитьКаталогСКомпонентами(ИменаПроектов, ИменаФайловБиблиотек);
32+
ПроверитьНаличиеБиблиотекиDotNET(ИменаФайловБиблиотек);
33+
34+
КонецПроцедуры
35+
36+
Процедура СобратьБиблиотекуDotNET(ИменаПроектов)
37+
38+
Для Каждого ИмяПроекта Из ИменаПроектов Цикл
39+
40+
КаталогРелиза = ОбъединитьПути(ТекущийКаталог(), "src/" + ИмяПроекта + "/bin/Release");
41+
ФС.ОбеспечитьПустойКаталог(КаталогРелиза);
42+
43+
Команда = Новый Команда;
44+
Команда.УстановитьСтрокуЗапуска(СтрШаблон("dotnet build src/%1 -c Release", ИмяПроекта));
45+
Команда.ПоказыватьВыводНемедленно(Истина);
46+
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
47+
48+
КодВозврата = Команда.Исполнить();
49+
Если Не КодВозврата = 0 Тогда
50+
ВызватьИсключение "Не удалось выполнить сборку .NET библиотеки";
51+
КонецЕсли;
52+
53+
КонецЦикла;
54+
55+
КонецПроцедуры
56+
57+
Процедура ПодготовитьКаталогСКомпонентами(ИменаПроектов, ИменаФайловБиблиотек)
58+
59+
СоответствиеПапок = Новый Соответствие();
60+
СоответствиеПапок.Вставить("net4", "net48");
61+
СоответствиеПапок.Вставить("dotnet", "net6.0");
62+
63+
КаталогСКомпонентами = ОбъединитьПути(ТекущийКаталог(), "Components");
64+
65+
ФС.ОбеспечитьПустойКаталог(КаталогСКомпонентами);
66+
67+
Для Каждого Соответствие Из СоответствиеПапок Цикл
68+
ИмяКаталогаOscript = Соответствие.Ключ;
69+
ИмяКаталогаDotnet = Соответствие.Значение;
70+
71+
ПутьККаталгуOscript = ОбъединитьПути(КаталогСКомпонентами, ИмяКаталогаOscript);
72+
ФС.ОбеспечитьПустойКаталог(ПутьККаталгуOscript);
73+
74+
Для Каждого ИмяПроекта Из ИменаПроектов Цикл
75+
ПутьККаталгуDotnet = ОбъединитьПути(ТекущийКаталог(), "src/" + ИмяПроекта + "/bin/Release", ИмяКаталогаDotnet);
76+
77+
Для Каждого Строка Из ИменаФайловБиблиотек Цикл
78+
ИмяФайла = Строка.Ключ;
79+
ПутьИсточник = ОбъединитьПути(ПутьККаталгуDotnet, ИмяФайла);
80+
ПутьПриемник = ОбъединитьПути(ПутьККаталгуOscript, ИмяФайла);
81+
82+
Если ФС.ФайлСуществует(ПутьИсточник) Тогда
83+
ПереместитьФайл(ПутьИсточник, ПутьПриемник);
84+
КонецЕсли;
85+
КонецЦикла;
86+
КонецЦикла;
87+
КонецЦикла;
88+
89+
КонецПроцедуры
90+
91+
Процедура ПроверитьНаличиеБиблиотекиDotNET(ИменаФайловБиблиотек)
92+
93+
Для Каждого ИмяПапки Из СтрРазделить("net4,dotnet", ",") Цикл
94+
Для Каждого Строка Из ИменаФайловБиблиотек Цикл
95+
96+
ИмяФайла = Строка.Ключ;
97+
ИмяЦелевойПапки = Строка.Значение;
98+
99+
Если ЗначениеЗаполнено(ИмяЦелевойПапки) И ИмяЦелевойПапки <> ИмяПапки Тогда
100+
Продолжить;
101+
КонецЕсли;
102+
103+
ПутьКФайлу = ОбъединитьПути(ТекущийКаталог(), "Components", ИмяПапки, ИмяФайла);
104+
Если Не ФС.ФайлСуществует(ПутьКФайлу) Тогда
105+
ВызватьИсключение СтрШаблон("Отсутсвует .NET библиотека %1 в папке Components/%2", ИмяФайла, ИмяПапки);
106+
КонецЕсли;
107+
108+
КонецЦикла;
109+
КонецЦикла;
110+
111+
КонецПроцедуры
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

packagedef

+3-91
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,7 @@
1-
#Использовать 1commands
2-
#Использовать fs
3-
4-
// Вызывается пакетным менеджером перед началом сборки пакета.
5-
//
6-
// Параметры:
7-
// РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
8-
//
9-
Процедура ПередСборкой(Знач РабочийКаталог) Экспорт
10-
СобратьБиблиотекуDotNET();
11-
ПодготовитьКаталогСКомпонентами();
12-
ПроверитьНаличиеБиблиотекиDotNET();
13-
КонецПроцедуры
14-
15-
Процедура СобратьБиблиотекуDotNET()
16-
17-
КаталогРелиза = ОбъединитьПути(ТекущийКаталог(), "oscript-compressor/bin/Release");
18-
ФС.ОбеспечитьПустойКаталог(КаталогРелиза);
19-
20-
Команда = Новый Команда;
21-
Команда.УстановитьСтрокуЗапуска("dotnet build oscript-compressor -c Release");
22-
Команда.ПоказыватьВыводНемедленно(Истина);
23-
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
24-
КодВозврата = Команда.Исполнить();
25-
Если Не КодВозврата = 0 Тогда
26-
ВызватьИсключение "Не удалось выполнить сборку .NET библиотеки";
27-
КонецЕсли;
28-
29-
КонецПроцедуры
30-
31-
Процедура ПодготовитьКаталогСКомпонентами()
32-
33-
СоответствиеПапок = Новый Соответствие();
34-
СоответствиеПапок.Вставить("net4", "net48");
35-
СоответствиеПапок.Вставить("dotnet", "net6.0");
36-
37-
ПомещаемыеРесурсы = Новый Массив();
38-
ПомещаемыеРесурсы.Добавить("1script_compressor.dll");
39-
40-
ПомещаемыеРесурсы.Добавить("EasyCompressor.dll");
41-
ПомещаемыеРесурсы.Добавить("EasyCompressor.Snappier.dll");
42-
ПомещаемыеРесурсы.Добавить("EasyCompressor.LZ4.dll");
43-
ПомещаемыеРесурсы.Добавить("EasyCompressor.ZstdSharp.dll");
44-
45-
ПомещаемыеРесурсы.Добавить("BrotliSharpLib.dll");
46-
ПомещаемыеРесурсы.Добавить("Snappier.dll");
47-
ПомещаемыеРесурсы.Добавить("ZstdSharp.dll");
48-
ПомещаемыеРесурсы.Добавить("K4os.Compression.LZ4.dll");
49-
ПомещаемыеРесурсы.Добавить("K4os.Compression.LZ4.Streams.dll");
50-
ПомещаемыеРесурсы.Добавить("K4os.Hash.xxHash.dll");
51-
52-
ПомещаемыеРесурсы.Добавить("System.Memory.dll");
53-
ПомещаемыеРесурсы.Добавить("System.Buffers.dll");
54-
ПомещаемыеРесурсы.Добавить("System.Runtime.CompilerServices.Unsafe.dll");
55-
ПомещаемыеРесурсы.Добавить("System.Threading.Tasks.Extensions.dll");
56-
57-
КаталогСКомпонентами = ОбъединитьПути(ТекущийКаталог(), "Components");
58-
59-
ФС.ОбеспечитьПустойКаталог(КаталогСКомпонентами);
60-
61-
Для Каждого Соответствие Из СоответствиеПапок Цикл
62-
ИмяКаталогаOscript = Соответствие.Ключ;
63-
ИмяКаталогаDotnet = Соответствие.Значение;
64-
65-
ПутьККаталгуOscript = ОбъединитьПути(КаталогСКомпонентами, ИмяКаталогаOscript);
66-
ПутьККаталгуDotnet = ОбъединитьПути(ТекущийКаталог(), "oscript-compressor/bin/Release", ИмяКаталогаDotnet);
67-
68-
ФС.ОбеспечитьПустойКаталог(ПутьККаталгуOscript);
69-
70-
Для Каждого ИмяРесурса Из ПомещаемыеРесурсы Цикл
71-
ПутьИсточник = ОбъединитьПути(ПутьККаталгуDotnet, ИмяРесурса);
72-
ПутьПриемник = ОбъединитьПути(ПутьККаталгуOscript, ИмяРесурса);
73-
74-
Если ФС.ФайлСуществует(ПутьИсточник) Тогда
75-
ПереместитьФайл(ПутьИсточник, ПутьПриемник);
76-
КонецЕсли;
77-
КонецЦикла;
78-
КонецЦикла;
79-
80-
КонецПроцедуры
81-
82-
Процедура ПроверитьНаличиеБиблиотекиDotNET()
83-
84-
ИмяФайла = "1script_compressor.dll";
85-
86-
Для Каждого ИмяПапки Из СтрРазделить("net4,dotnet", ",") Цикл
87-
ПутьКФайлу = ОбъединитьПути(ТекущийКаталог(), "Components", ИмяПапки, ИмяФайла);
88-
Если Не ФС.ФайлСуществует(ПутьКФайлу) Тогда
89-
ВызватьИсключение СтрШаблон("Отсутсвует .NET библиотека %1 в папке Components/%2", ИмяФайла, ИмяПапки);
90-
КонецЕсли;
91-
КонецЦикла;
1+
#Использовать "build"
922

3+
Процедура ПередСборкой(РабочийКаталог) Экспорт
4+
ПодготовкаКомпонентов.Подготовить();
935
КонецПроцедуры
946

957
Описание

oscript-compressor/BaseCompressor.cs renamed to src/OneScriptCompressor/BaseCompressor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
using OneScript.Exceptions;
1414
#endif
1515

16-
namespace OscriptCompressor
16+
namespace OneScriptCompressor
1717
{
1818
[ContextClass("AbstractBaseCompressor")]
1919
public abstract class BaseCompressor : AutoContext<BaseCompressor>, ICompressor

oscript-compressor/BrotliCompressor.cs renamed to src/OneScriptCompressor/BrotliCompressor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
using OneScript.Contexts;
1111
#endif
1212

13-
namespace OscriptCompressor
13+
namespace OneScriptCompressor
1414
{
1515
/// <summary>
1616
/// Класс для упаковки/распаковки данных в Brotli.

oscript-compressor/CompressionLevel.cs renamed to src/OneScriptCompressor/CompressionLevel.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using OneScript.Contexts.Enums;
55
#endif
66

7-
namespace OscriptCompressor
7+
namespace OneScriptCompressor
88
{
99
/// <summary>
1010
/// Задает значения, показывающие, выделяет ли операция сжатия скорость или размер

oscript-compressor/DeflateCompressor.cs renamed to src/OneScriptCompressor/DeflateCompressor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using OneScript.Contexts;
77
#endif
88

9-
namespace OscriptCompressor
9+
namespace OneScriptCompressor
1010
{
1111
/// <summary>
1212
/// Класс для упаковки/распаковки данных в Deflate.

oscript-compressor/GZipCompressor.cs renamed to src/OneScriptCompressor/GZipCompressor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using OneScript.Contexts;
77
#endif
88

9-
namespace OscriptCompressor
9+
namespace OneScriptCompressor
1010
{
1111
/// <summary>
1212
/// Класс для упаковки/распаковки данных в GZip.

oscript-compressor/ICompressor.cs renamed to src/OneScriptCompressor/ICompressor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ScriptEngine.Machine;
22

3-
namespace OscriptCompressor
3+
namespace OneScriptCompressor
44
{
55
internal interface ICompressor
66
{

oscript-compressor/LZ4CompressionLevel.cs renamed to src/OneScriptCompressor/LZ4CompressionLevel.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using OneScript.Contexts.Enums;
77
#endif
88

9-
namespace OscriptCompressor
9+
namespace OneScriptCompressor
1010
{
1111
/// <summary>
1212
/// ZStandard Compression Level

oscript-compressor/LZ4Compressor.cs renamed to src/OneScriptCompressor/LZ4Compressor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
using OneScript.Contexts;
88
#endif
99

10-
namespace OscriptCompressor
10+
namespace OneScriptCompressor
1111
{
1212
/// <summary>
1313
/// Класс для упаковки/распаковки данных в LZ4.

oscript-compressor/OscriptCompressor.csproj renamed to src/OneScriptCompressor/OneScriptCompressor.csproj

+2-16
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<LangVersion>10.0</LangVersion>
66
<PackageProjectUrl>https://github.com/Stivo182/oscript-compressor</PackageProjectUrl>
77
<RepositoryUrl>https://github.com/Stivo182/oscript-compressor</RepositoryUrl>
8-
<Title>OscriptCompressor</Title>
8+
<Title>OneScriptCompressor</Title>
99
<Company>Stivo182</Company>
1010
<Copyright>Stivo182</Copyright>
1111
<Version>1.0.1</Version>
@@ -22,21 +22,7 @@
2222
</ItemGroup>
2323

2424
<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
25-
<Reference Include="OneScript.Core">
26-
<HintPath>dependencies\netcore\\OneScript.Core.dll</HintPath>
27-
</Reference>
28-
<Reference Include="OneScript.StandardLibrary">
29-
<HintPath>dependencies\netcore\OneScript.StandardLibrary.dll</HintPath>
30-
</Reference>
31-
<Reference Include="OneScript.Language">
32-
<HintPath>dependencies\netcore\OneScript.Language.dll</HintPath>
33-
</Reference>
34-
<Reference Include="ScriptEngine">
35-
<HintPath>dependencies\netcore\ScriptEngine.dll</HintPath>
36-
</Reference>
37-
<Reference Include="ScriptEngine.HostedScript">
38-
<HintPath>dependencies\netcore\ScriptEngine.HostedScript.dll</HintPath>
39-
</Reference>
25+
<PackageReference Include="OneScript.StandardLibrary" Version="2.0.0-rc6" />
4026
</ItemGroup>
4127

4228
<ItemGroup Condition="'$(TargetFramework)'=='net48'">

0 commit comments

Comments
 (0)