This commit is contained in:
snltty
2025-11-11 17:38:48 +08:00
parent 55d648d780
commit 86a04e66e6
44 changed files with 543 additions and 167 deletions

6
package-lock.json generated Normal file
View File

@@ -0,0 +1,6 @@
{
"name": "linker",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}

View File

@@ -2,9 +2,9 @@
SET comment=%1
cd gen
cd shells/gen
node index.js
cd ../
cd ../../
git add .
git commit -m "%comment%"

View File

@@ -7,7 +7,7 @@ const parser = new xml2js.Parser();
function readVersionDesc() {
return new Promise((resolve, reject) => {
const fileContents = fs.readFileSync('../src/linker/linker.csproj', 'utf8');
const fileContents = fs.readFileSync('../../src/linker/linker.csproj', 'utf8');
parser.parseString(fileContents, (error, result) => {
resolve(
{ desc: result.Project.PropertyGroup[0].Description[0], version: result.Project.PropertyGroup[0].FileVersion[0] }
@@ -242,32 +242,32 @@ readVersionDesc().then((desc) => {
while (publishText.indexOf('{{version}}') >= 0) {
publishText = publishText.replace('{{version}}', desc.version);
}
writeText('../shells/publish-docker.sh', publishText);
writeText('../publish-docker.sh', publishText);
let publishIpkText = readText('../ymls/publish-ipk.sh');
while (publishIpkText.indexOf('{{version}}') >= 0) {
publishIpkText = publishIpkText.replace('{{version}}', desc.version);
}
writeText('../shells/publish-ipk.sh', publishIpkText);
writeText('../publish-ipk.sh', publishIpkText);
let dockerText = readText('../ymls/docker.yml');
while (dockerText.indexOf('{{version}}') >= 0) {
dockerText = dockerText.replace('{{version}}', desc.version);
}
writeText('../.github/workflows/docker.yml', dockerText);
writeText('../../.github/workflows/docker.yml', dockerText);
let nugetText = readText('../ymls/nuget.yml');
while (nugetText.indexOf('{{version}}') >= 0) {
nugetText = nugetText.replace('{{version}}', desc.version);
}
writeText('../.github/workflows/nuget.yml', nugetText);
writeText('../../.github/workflows/nuget.yml', nugetText);
const ipkData = readYaml('../ymls/ipk.yml');
writeUploadIpk(ipkData, `v${desc.version}`);
writeYaml('../.github/workflows/ipk.yml', ipkData);
writeYaml('../../.github/workflows/ipk.yml', ipkData);
/*
const loongarch64Data = readYaml('../ymls/loongarch64.yml');

View File

@@ -1,12 +1,13 @@
target=$(cd $(dirname $0); pwd)
target=$(cd $(dirname $0)/..; pwd)
image="snltty/linker"
cd ../
fs=('linker')
ps=('musl' 'debian' 'kvm')
rs=('x64' 'arm64' 'arm')
cd ../src/linker.web
cd src/linker.web
npm install &&
npm run build &&
cd ../../
@@ -26,31 +27,31 @@ do
then
rr=linux-${r}
fi
dotnet publish ../src/${f} -c release -f net8.0 -o ../public/publish/docker/linux-${p}-${r}/${f} -r ${rr} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf ../src/linker/Dockerfile-${p} ../public/publish/docker/linux-${p}-${r}/${f}/Dockerfile-${p}
cp -rf ../public/extends/any/web ../public/publish/docker/linux-${p}-${r}/${f}/web
mkdir -p ../public/publish/docker/linux-${p}-${r}/${f}/configs
mkdir -p ../public/publish/docker/linux-${p}-${r}/${f}/logs
dotnet publish src/${f} -c release -f net8.0 -o public/publish/docker/linux-${p}-${r}/${f} -r ${rr} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf src/linker/Dockerfile-${p} public/publish/docker/linux-${p}-${r}/${f}/Dockerfile-${p}
cp -rf public/extends/any/web public/publish/docker/linux-${p}-${r}/${f}/web
mkdir -p public/publish/docker/linux-${p}-${r}/${f}/configs
mkdir -p public/publish/docker/linux-${p}-${r}/${f}/logs
if [ $p = "musl" ]
then
cp -rf ../src/linker/libmsquic-musl-${r}.so ../public/publish/docker/linux-${p}-${r}/${f}/libmsquic.so
cp -rf src/linker/libmsquic-musl-${r}.so public/publish/docker/linux-${p}-${r}/${f}/libmsquic.so
fi
if [ $p = "kvm" ]
then
cp -rf ../install-package/kvm/ ../public/publish/docker/linux-${p}-${r}/${f}/kvm/
cp -rf ../install-package/kvm/ public/publish/docker/linux-${p}-${r}/${f}/kvm/
fi
done
cd ../public/publish/docker/linux-${p}-x64/${f}
cd public/publish/docker/linux-${p}-x64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-x64/${f}/Dockerfile-${p} --platform="linux/x86_64" --force-rm -t "${image}-${p}-x64:latest" -t "${image}-${p}-x64:v1.9.6" . --push
cd ../../../../../shells
cd ../../../../../
cd ../public/publish/docker/linux-${p}-arm64/${f}
cd public/publish/docker/linux-${p}-arm64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm64/${f}/Dockerfile-${p} --platform="linux/arm64" --force-rm -t "${image}-${p}-arm64:latest" -t "${image}-${p}-arm64:v1.9.6" . --push
cd ../../../../../shells
cd ../../../../../
cd ../public/publish/docker/linux-${p}-arm/${f}
cd public/publish/docker/linux-${p}-arm/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm/${f}/Dockerfile-${p} --platform="linux/arm/v7" --force-rm -t "${image}-${p}-arm:latest" -t "${image}-${p}-arm:v1.9.6" . --push
cd ../../../../../shells
cd ../../../../../
done
done

View File

@@ -1,44 +1,46 @@
target=$(cd $(dirname $0); pwd)
target=$(cd $(dirname $0)/..; pwd)
cd ../
rs=('x64' 'arm64' 'arm')
index=0
cd ../src/linker.web
cd src/linker.web
npm install &&
npm run build &&
cd ../../
for r in ${rs[@]}
do
dotnet publish ../src/linker -c release -f net8.0 -o ../public/publish/${r} -r linux-musl-${r} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf ../public/extends/any/web ../public/publish/${r}/web
mkdir -p ../public/publish/${r}/configs
mkdir -p ../public/publish/${r}/logs
cp -rf ../src/linker/libmsquic-musl-${r}.so ../public/publish/${r}/libmsquic.so
dotnet publish src/linker -c release -f net8.0 -o public/publish/${r} -r linux-musl-${r} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf public/extends/any/web public/publish/${r}/web
mkdir -p public/publish/${r}/configs
mkdir -p public/publish/${r}/logs
cp -rf src/linker/libmsquic-musl-${r}.so public/publish/${r}/libmsquic.so
mkdir -p ../public/publish-ipk/${r}
cp -rf ../install-package/ipk/package/* ../public/publish-ipk/${r}/
cp -rf ../install-package/ipk/libs/${r}/* ../public/publish-ipk/${r}/data/
mkdir -p ../public/publish-ipk/${r}/data/usr/bin/linker
cp -rf ../public/publish/${r}/* ../public/publish-ipk/${r}/data/usr/bin/linker/
mkdir -p public/publish-ipk/${r}
cp -rf install-package/ipk/package/* public/publish-ipk/${r}/
cp -rf install-package/ipk/libs/${r}/* public/publish-ipk/${r}/data/
mkdir -p public/publish-ipk/${r}/data/usr/bin/linker
cp -rf public/publish/${r}/* public/publish-ipk/${r}/data/usr/bin/linker/
sed -i "s|{version}|1.9.6|g" ../public/publish-ipk/${r}/control/control
sed -i 's/\r$//' ../public/publish-ipk/${r}/data/etc/init.d/linker
sed -i 's/\r$//' ../public/publish-ipk/${r}/control/control
sed -i 's/\r$//' ../public/publish-ipk/${r}/control/postinst
sed -i 's/\r$//' ../public/publish-ipk/${r}/control/prerm
sed -i "s|{version}|1.9.6|g" public/publish-ipk/${r}/control/control
sed -i 's/\r$//' public/publish-ipk/${r}/data/etc/init.d/linker
sed -i 's/\r$//' public/publish-ipk/${r}/control/control
sed -i 's/\r$//' public/publish-ipk/${r}/control/postinst
sed -i 's/\r$//' public/publish-ipk/${r}/control/prerm
chmod +x ../public/publish-ipk/${r}/data/etc/init.d/linker
chmod +x ../public/publish-ipk/${r}/control/control
chmod +x ../public/publish-ipk/${r}/control/postinst
chmod +x ../public/publish-ipk/${r}/control/prerm
chmod +x public/publish-ipk/${r}/data/etc/init.d/linker
chmod +x public/publish-ipk/${r}/control/control
chmod +x public/publish-ipk/${r}/control/postinst
chmod +x public/publish-ipk/${r}/control/prerm
cd ../public/publish-ipk/${r}
cd public/publish-ipk/${r}
tar -czf data.tar.gz -C data/ .
tar -czf control.tar.gz -C control/ .
echo "2.0" > debian-binary
tar -czf linker-${r}.ipk debian-binary data.tar.gz control.tar.gz
cd ../../../shells
cd ../../../
((index++))
done

View File

@@ -3,39 +3,41 @@
SET sdkpath=%1
if "%sdkpath%"=="" (SET sdkpath="D:\\Android\\android-sdk")
rd /s /q ..\\public\\extends
rd /s /q ..\\public\\publish
rd /s /q ..\\public\\publish-zip
mkdir ..\\public\\publish-zip
cd ../
rd /s /q public\\extends
rd /s /q public\\publish
rd /s /q public\\publish-zip
mkdir public\\publish-zip
cd ../src/linker.web
cd src/linker.web
call npm install
call npm run build
cd ../../
echo F|xcopy "version.txt" "public\\version.txt" /f /h /y
echo F|xcopy "shells\\version.txt" "public\\version.txt" /f /h /y
echo F|xcopy "..\\public\\extends\\any\\web\\*" "..\\src\\linker.app\\public\\web\\*" /s /f /h /y
echo F|xcopy "public\\extends\\any\\web\\*" "src\\linker.app\\public\\web\\*" /s /f /h /y
dotnet publish ./src/linker.app -c:Release -f:net8.0-android /p:AndroidUseApkSigner=true /p:AndroidPackageFormat=apk /p:AndroidKeyStore=true /p:AndroidSigningKeyStore=linker.jks /p:AndroidSigningStorePass=linker /p:AndroidSigningKeyAlias=linker /p:AndroidSigningKeyPass=linker /p:AndroidSdkDirectory=%sdkpath%
echo F|xcopy "..\\src\\linker.app\\bin\\Release\\net8.0-android\\publish\\com.snltty.linker.app-Signed.apk" "..\\public\\publish-zip\\linker.apk" /s /f /h /y
echo F|xcopy "src\\linker.app\\bin\\Release\\net8.0-android\\publish\\com.snltty.linker.app-Signed.apk" "public\\publish-zip\\linker.apk" /s /f /h /y
for %%r in (win-x86,win-x64,win-arm64) do (
echo F|xcopy "..\\src\\linker.tray.win\\dist\\*" "..\\public\\extends\\%%r\\linker-%%r\\*" /s /f /h /y
echo F|xcopy "..\\src\\linker.route.win\\dist\\*" "..\\public\\extends\\%%r\\linker-%%r\\*" /s /f /h /y
echo F|xcopy "..\\src\\linker\\msquic.dll" "..\\public\\extends\\%%r\\linker-%%r\\msquic.dll" /s /f /h /y
echo F|xcopy "..\\src\\linker\\msquic-%%r.dll" "..\\public\\extends\\%%r\\linker-%%r\\msquic.dll" /s /f /h /y
echo F|xcopy "..\\src\\linker\\msquic-openssl3-%%r.dll" "..\\public\\extends\\%%r\\linker-%%r\\msquic-openssl.dll" /s /f /h /y
echo F|xcopy "..\\src\\linker\\wintun-%%r.dll" "..\\public\\extends\\%%r\\linker-%%r\\wintun.dll" /s /f /h /y
echo F|xcopy "src\\linker.tray.win\\dist\\*" "public\\extends\\%%r\\linker-%%r\\*" /s /f /h /y
echo F|xcopy "src\\linker.route.win\\dist\\*" "public\\extends\\%%r\\linker-%%r\\*" /s /f /h /y
echo F|xcopy "src\\linker\\msquic.dll" "public\\extends\\%%r\\linker-%%r\\msquic.dll" /s /f /h /y
echo F|xcopy "src\\linker\\msquic-%%r.dll" "public\\extends\\%%r\\linker-%%r\\msquic.dll" /s /f /h /y
echo F|xcopy "src\\linker\\msquic-openssl3-%%r.dll" "public\\extends\\%%r\\linker-%%r\\msquic-openssl.dll" /s /f /h /y
echo F|xcopy "src\\linker\\wintun-%%r.dll" "public\\extends\\%%r\\linker-%%r\\wintun.dll" /s /f /h /y
)
for %%r in (win-x86,win-x64,win-arm64,linux-x64,linux-arm,linux-arm64,linux-musl-x64,linux-musl-arm,linux-musl-arm64) do (
dotnet publish ../src/linker -c release -f net8.0 -o ../public/publish/%%r/linker-%%r -r %%r -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=full -p:EventSourceSupport=false -p:DebugSymbols=true -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
echo F|xcopy "..\\public\\extends\\%%r\\linker-%%r\\*" "..\\public\\publish\\%%r\\linker-%%r\\*" /s /f /h /y
dotnet publish src/linker -c release -f net8.0 -o public/publish/%%r/linker-%%r -r %%r -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=full -p:EventSourceSupport=false -p:DebugSymbols=true -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
echo F|xcopy "public\\extends\\%%r\\linker-%%r\\*" "public\\publish\\%%r\\linker-%%r\\*" /s /f /h /y
echo F|xcopy "..\\public\\extends\\any\\*" "..\\public\\publish\\%%r\\linker-%%r\\*" /s /f /h /y
echo F|xcopy "public\\extends\\any\\*" "public\\publish\\%%r\\linker-%%r\\*" /s /f /h /y
7z a -tzip ../public/publish-zip/linker-%%r.zip ../public/publish/%%r/*
7z a -tzip public/publish-zip/linker-%%r.zip public/publish/%%r/*
)

View File

@@ -1,5 +1,5 @@
v1.9.6
2025-11-11 16:55:49
2025-11-11 17:38:47
1. 一些累计更新一些BUG修复
2. 优化客户端数据同步,减少服务器流量
3. 去除cdkey改为发电解锁中继速度

View File

@@ -0,0 +1,57 @@
target=$(cd $(dirname $0)/..; pwd)
image="snltty/linker"
cd ../
fs=('linker')
ps=('musl' 'debian' 'kvm')
rs=('x64' 'arm64' 'arm')
cd src/linker.web
npm install &&
npm run build &&
cd ../../
for f in ${fs[@]}
do
for p in ${ps[@]}
do
for r in ${rs[@]}
do
rr=linux-${p}-${r}
if [ $p = "debian" ]
then
rr=linux-${r}
fi
if [ $p = "kvm" ]
then
rr=linux-${r}
fi
dotnet publish src/${f} -c release -f net8.0 -o public/publish/docker/linux-${p}-${r}/${f} -r ${rr} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf src/linker/Dockerfile-${p} public/publish/docker/linux-${p}-${r}/${f}/Dockerfile-${p}
cp -rf public/extends/any/web public/publish/docker/linux-${p}-${r}/${f}/web
mkdir -p public/publish/docker/linux-${p}-${r}/${f}/configs
mkdir -p public/publish/docker/linux-${p}-${r}/${f}/logs
if [ $p = "musl" ]
then
cp -rf src/linker/libmsquic-musl-${r}.so public/publish/docker/linux-${p}-${r}/${f}/libmsquic.so
fi
if [ $p = "kvm" ]
then
cp -rf ../install-package/kvm/ public/publish/docker/linux-${p}-${r}/${f}/kvm/
fi
done
cd public/publish/docker/linux-${p}-x64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-x64/${f}/Dockerfile-${p} --platform="linux/x86_64" --force-rm -t "${image}-${p}-x64:latest" -t "${image}-${p}-x64:v{{version}}" . --push
cd ../../../../../
cd public/publish/docker/linux-${p}-arm64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm64/${f}/Dockerfile-${p} --platform="linux/arm64" --force-rm -t "${image}-${p}-arm64:latest" -t "${image}-${p}-arm64:v{{version}}" . --push
cd ../../../../../
cd public/publish/docker/linux-${p}-arm/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm/${f}/Dockerfile-${p} --platform="linux/arm/v7" --force-rm -t "${image}-${p}-arm:latest" -t "${image}-${p}-arm:v{{version}}" . --push
cd ../../../../../
done
done

View File

@@ -0,0 +1,46 @@
target=$(cd $(dirname $0)/..; pwd)
cd ../
rs=('x64' 'arm64' 'arm')
index=0
cd src/linker.web
npm install &&
npm run build &&
cd ../../
for r in ${rs[@]}
do
dotnet publish src/linker -c release -f net8.0 -o public/publish/${r} -r linux-musl-${r} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf public/extends/any/web public/publish/${r}/web
mkdir -p public/publish/${r}/configs
mkdir -p public/publish/${r}/logs
cp -rf src/linker/libmsquic-musl-${r}.so public/publish/${r}/libmsquic.so
mkdir -p public/publish-ipk/${r}
cp -rf install-package/ipk/package/* public/publish-ipk/${r}/
cp -rf install-package/ipk/libs/${r}/* public/publish-ipk/${r}/data/
mkdir -p public/publish-ipk/${r}/data/usr/bin/linker
cp -rf public/publish/${r}/* public/publish-ipk/${r}/data/usr/bin/linker/
sed -i "s|{version}|{{version}}|g" public/publish-ipk/${r}/control/control
sed -i 's/\r$//' public/publish-ipk/${r}/data/etc/init.d/linker
sed -i 's/\r$//' public/publish-ipk/${r}/control/control
sed -i 's/\r$//' public/publish-ipk/${r}/control/postinst
sed -i 's/\r$//' public/publish-ipk/${r}/control/prerm
chmod +x public/publish-ipk/${r}/data/etc/init.d/linker
chmod +x public/publish-ipk/${r}/control/control
chmod +x public/publish-ipk/${r}/control/postinst
chmod +x public/publish-ipk/${r}/control/prerm
cd public/publish-ipk/${r}
tar -czf data.tar.gz -C data/ .
tar -czf control.tar.gz -C control/ .
echo "2.0" > debian-binary
tar -czf linker-${r}.ipk debian-binary data.tar.gz control.tar.gz
cd ../../../
((index++))
done

View File

@@ -1,4 +1,6 @@
target=$(cd $(dirname $0); pwd)
target=$(cd $(dirname $0)/..; pwd)
cd ../
cd src/linker.web
npm install &&

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1 @@
.el-form-item[data-v-d15496e8]{margin-bottom:1rem}.el-transfer.src-tranfer .el-transfer__buttons .el-button{display:block}.el-transfer.src-tranfer .el-transfer__buttons .el-button:nth-child(2){margin:1rem 0 0 0}.head[data-v-389400a3]{margin-bottom:.6rem;color:#555;border:1px solid #eee;padding:0 1rem 1rem 1rem}html.dark .head[data-v-389400a3]{border-color:#575c61}.firewall.el-table .action-1{color:green}.firewall.el-table .action-2{color:#c83f08}.firewall-setting-wrap[data-v-c201dbbc]{padding:1rem;box-sizing:border-box;font-size:1.3rem}.firewall-setting-wrap .inner[data-v-c201dbbc]{width:100%;box-sizing:border-box}

View File

@@ -0,0 +1 @@
.el-transfer.src-tranfer .el-transfer__buttons .el-button{display:block}.el-transfer.src-tranfer .el-transfer__buttons .el-button:nth-child(2){margin:1rem 0 0 0}.el-form-item[data-v-26eb3ac8]{margin-bottom:1rem}.el-input-number--small[data-v-26eb3ac8]{width:10rem!important}.blue[data-v-92ae2ca2]{color:#409eff}.el-checkbox[data-v-92ae2ca2]{font-weight:100}a.a-edit .el-icon[data-v-92ae2ca2]{vertical-align:middle}.el-form-item[data-v-b84ff358]{margin-bottom:1rem}.el-input-number--small[data-v-b84ff358]{width:10rem!important}.head .search>div[data-v-6d0f13ec]{margin-right:1rem}.page[data-v-6d0f13ec]{padding:2rem 0;display:inline-block}.el-form-item[data-v-6d0f13ec]{margin-bottom:1rem}.el-input-number--small[data-v-6d0f13ec]{width:10rem!important}.blue[data-v-198d2be3]{color:#409eff}a.a-edit[data-v-198d2be3]{margin-left:1rem}a.a-edit .el-icon[data-v-198d2be3]{vertical-align:middle}.el-form-item[data-v-06530694]{margin-bottom:1rem}.el-input-number--small[data-v-06530694]{width:10rem!important}.el-checkbox[data-v-09d3b4fe]{font-weight:100}a.a-edit .el-icon[data-v-09d3b4fe]{vertical-align:middle}.servers-wrap[data-v-6c813b26]{padding:1rem;font-size:1.3rem;color:#555}.servers-wrap a[data-v-6c813b26]{color:#333}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.el-form-item[data-v-9857fa74],.el-row[data-v-9857fa74]{width:100%}.el-form-item[data-v-9857fa74]:last-child{margin-bottom:0}@media screen and (max-width:768px){.el-col[data-v-9857fa74]{margin-top:.6rem}}.pages[data-v-7549387e]{padding:1rem 0 0 1rem}.page-wrap[data-v-7549387e]{display:inline-block}.logger-setting-wrap[data-v-7549387e]{padding:1rem;box-sizing:border-box}.logger-setting-wrap .inner[data-v-7549387e]{padding:1rem}.logger-setting-wrap .head[data-v-7549387e]{margin-bottom:1rem}.logger-content[data-v-7549387e]{width:100%;height:40rem;box-sizing:border-box;padding:1rem;margin-top:1rem;background:#f5f5f5;border:1px solid #eee;border-radius:4px;font-size:1.2rem;resize:none;outline:none;overflow:auto;white-space:nowrap}.logger-setting-wrap .el-table .type-0{color:#00f}.logger-setting-wrap .el-table .type-1{color:#333}.logger-setting-wrap .el-table .type-2{color:#cd9906}.logger-setting-wrap .el-table .type-3{color:red}.logger-setting-wrap .el-table .type-4{color:red;font-weight:700}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.e9b4f2f4.js"></script><script defer="defer" src="js/app.e4721c3e.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.e16885f2.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.81dda515.js"></script><script defer="defer" src="js/app.650e2bec.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.5f32f79a.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[199],{2322:function(e,s,t){t.d(s,{A:function(){return b}});var n=t(6768),a=t(4232);const l={class:"t-c"},c={class:"t-c w-100 mgt-1"};function o(e,s,t,o,r,d){const i=(0,n.g2)("Share"),u=(0,n.g2)("el-icon"),m=(0,n.g2)("el-button"),h=(0,n.g2)("el-transfer"),f=(0,n.g2)("el-dialog"),k=(0,n.g2)("AccessBoolean");return(0,n.uX)(),(0,n.Wv)(k,{value:"Sync"},{default:(0,n.k6)((({values:t})=>[(0,n.Lk)("div",null,[(0,n.RG)(e.$slots,"default",{},(()=>[(0,n.bF)(m,{class:"btn",size:"small",onClick:e=>o.handleShowSync(t)},{default:(0,n.k6)((()=>[(0,n.bF)(u,null,{default:(0,n.k6)((()=>[(0,n.bF)(i)])),_:1})])),_:2},1032,["onClick"])])),(0,n.bF)(f,{class:"options-center",title:e.$t("server.sync"),"destroy-on-close":"",modelValue:o.state.showNames,"onUpdate:modelValue":s[2]||(s[2]=e=>o.state.showNames=e),width:"54rem",top:"2vh"},{default:(0,n.k6)((()=>[(0,n.Lk)("div",null,[(0,n.Lk)("div",l,(0,a.v_)(`${e.$t("server.sync")}${e.$t(`server.async${o.state.name}`)}${e.$t("server.asyncText")}`),1),(0,n.bF)(h,{class:"src-tranfer mgt-1",modelValue:o.state.srcIdValues,"onUpdate:modelValue":s[0]||(s[0]=e=>o.state.srcIdValues=e),filterable:"","filter-method":o.srcFilterMethod,data:o.state.srcIds,titles:[e.$t("firewall.unselect"),e.$t("firewall.selected")],props:{key:"MachineId",label:"MachineName"}},null,8,["modelValue","filter-method","data","titles"]),(0,n.Lk)("div",c,[(0,n.bF)(m,{onClick:s[1]||(s[1]=e=>o.state.showNames=!1)},{default:(0,n.k6)((()=>[(0,n.eW)((0,a.v_)(e.$t("common.cancel")),1)])),_:1}),(0,n.bF)(m,{type:"primary",onClick:o.handleConfirm},{default:(0,n.k6)((()=>[(0,n.eW)((0,a.v_)(e.$t("common.confirm")),1)])),_:1},8,["onClick"])])])])),_:1},8,["title","modelValue"])])])),_:3})}var r=t(9299),d=t(4);const i=e=>(0,d.zG)("sync/Sync",e);var u=t(3830),m=t(7477),h=t(1219),f=t(144),k=t(5931),v={props:["name"],components:{Share:m.SYj},setup(e){const{t:s}=(0,k.s9)(),t=((0,u.B)(),(0,f.Kh)({name:e.name,loading:!1,showNames:!1,srcIdValues:[],srcIds:[]})),n=()=>{i({names:[e.name],ids:t.srcIdValues}).then((e=>{h.nk.success(s("common.oper")),t.showNames=!1}))},a=e=>{e.Sync?(t.showNames=!0,l()):h.nk.success(s("common.access"))},l=()=>{t.loading=!0,(0,r.NT)().then((e=>{t.loading=!1,t.srcIds=e})).catch((e=>{t.loading=!1}))},c=(e,s)=>s.MachineName.toLowerCase().includes(e.toLowerCase());return{state:t,handleShowSync:a,srcFilterMethod:c,handleConfirm:n}}},w=t(1241);const p=(0,w.A)(v,[["render",o]]);var b=p},2102:function(e,s,t){t.r(s),t.d(s,{default:function(){return m}});var n=t(6768);const a={class:"firewall-setting-wrap flex flex-column h-100"},l={class:"inner"};function c(e,s,t,c,o,r){const d=(0,n.g2)("Firewall");return(0,n.uX)(),(0,n.CE)("div",a,[(0,n.Lk)("div",l,[(0,n.bF)(d)])])}var o=t(144),r=t(5563),d={components:{Firewall:r.A},setup(e,{emit:s}){const t=(0,o.Kh)({});return{state:t}}},i=t(1241);const u=(0,i.A)(d,[["render",c],["__scopeId","data-v-c201dbbc"]]);var m=u}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[481],{5027:function(e,a,n){n.r(a),n.d(a,{default:function(){return V}});var t=n(6768);const l={class:"net-wrap app-wrap"},s={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},u={class:"body flex-1 relative"},r={class:"status"};function c(e,a,n,c,d,o){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",l,[(0,t.Lk)("div",s,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",u,[(0,t.bF)(p)]),(0,t.Lk)("div",r,[(0,t.bF)(v,{config:!1})])])])}var d=n(4232);const o=e=>((0,t.Qi)("data-v-1cb47bd6"),e=e(),(0,t.jt)(),e),g={class:"head-wrap"},p={class:"tools flex"},v={class:"label"},h=o((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),f={style:{"margin-left":"1rem"}};function k(e,a,n,l,s,i){const u=(0,t.g2)("Refresh"),r=(0,t.g2)("el-icon"),c=(0,t.g2)("el-button"),o=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",g,[(0,t.Lk)("div",p,[(0,t.Lk)("span",v,"分组 : "+(0,d.v_)(l.state.group),1),h,(0,t.bF)(c,{size:"small",onClick:l.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(r,null,{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",f,[(0,t.bF)(o,{name:"net"})])])])}var b=n(3830),m=n(144),C=n(7477),L=n(8442),_={components:{Edit:C.ffu,Refresh:C.C42,Background:L.A},setup(){const e=(0,b.B)(),a=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host)),group:(0,t.EW)((()=>e.value.config.Client.Group.Name))}),n=()=>{window.location.reload()};return{state:a,handleRefresh:n}}},w=n(1241);const S=(0,w.A)(_,[["render",k],["__scopeId","data-v-1cb47bd6"]]);var x=S;const F=e=>((0,t.Qi)("data-v-3c358101"),e=e(),(0,t.jt)(),e),z={class:"net-list-wrap flex flex-column absolute"},E={class:"flex-1 scrollbar"},T={class:"flex"},I=F((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),A={class:"tuntap"},P={class:"page t-c"},B={class:"page-wrap t-c"};function R(e,a,n,l,s,i){const u=(0,t.g2)("DeviceName"),r=(0,t.g2)("UpdaterBtn"),c=(0,t.g2)("TuntapShow"),d=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",z,[(0,t.Lk)("div",E,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(l.devices.page.List,((e,a)=>((0,t.uX)(),(0,t.CE)("li",{key:a},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",T,[(0,t.Lk)("div",null,[(0,t.bF)(u,{item:e},null,8,["item"])]),I,(0,t.Lk)("div",null,[(0,t.bF)(r,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",A,[l.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(c,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",P,[(0,t.Lk)("div",B,[(0,t.bF)(d,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:l.devices.page.Count,"page-size":l.devices.page.Request.Size,"current-page":l.devices.page.Request.Page,onCurrentChange:l.handlePageChange,onSizeChange:l.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var y=n(5234),X=n(4373),U=n(5304),D=n(749),Q=n(7325),W=n(4312),H=n(3417),K=n(6978),N={components:{StarFilled:C.BQ2,UpdaterBtn:D.A,DeviceName:Q.A,TuntapShow:W.A},setup(e){(0,b.B)();const a=(0,m.Kh)({}),{devices:n,machineId:l,_getSignList:s,_getSignList1:i,handlePageChange:u,handlePageSizeChange:r,clearDevicesTimeout:c}=(0,X.r)(),{tuntap:d,_getTuntapInfo:o,handleTuntapRefresh:g,clearTuntapTimeout:p,handleTuntapEdit:v,sortTuntapIP:h}=(0,y.O)(),{_getUpdater:f,_subscribeUpdater:k,clearUpdaterTimeout:C}=(0,U.d)();(0,K.y)();(0,H.L2)();return(0,t.sV)((()=>{u(),g(),s(),i(),o(),f(),k()})),(0,t.hi)((()=>{c(),p(),C()})),{state:a,devices:n,machineId:l,handlePageChange:u,handlePageSizeChange:r,tuntap:d}}};const j=(0,w.A)(N,[["render",R],["__scopeId","data-v-3c358101"]]);var q=j,G=n(3606),M={components:{Head:x,List:q,Status:G.A},setup(){return document.addEventListener("contextmenu",(function(e){e.preventDefault()})),{}}};const O=(0,w.A)(M,[["render",c],["__scopeId","data-v-1d28a52a"]]);var V=O}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[635],{9783:function(e,n,t){t.r(n),t.d(n,{default:function(){return p}});var s=t(6768);const r={class:"wakeup-setting-wrap flex flex-column h-100"},u={class:"inner"};function a(e,n,t,a,c,i){const o=(0,s.g2)("Wakeup");return(0,s.uX)(),(0,s.CE)("div",r,[(0,s.Lk)("div",u,[(0,s.bF)(o)])])}var c=t(144),i=t(839),o={components:{Wakeup:i.A},setup(e,{emit:n}){const t=(0,c.Kh)({});return{state:t}}},k=t(1241);const l=(0,k.A)(o,[["render",a],["__scopeId","data-v-64398669"]]);var p=l}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[76],{6271:function(e,t,n){n.d(t,{A:function(){return y}});var a=n(6768),s=n(4232);const o={class:"flex"},c={class:"flex-1"},l={class:"t-c"};function r(e,t,n,r,d,i){const u=(0,a.g2)("Sync"),m=(0,a.g2)("el-input"),h=(0,a.g2)("el-button"),v=(0,a.g2)("el-card"),f=(0,a.gN)("trim");return(0,a.uX)(),(0,a.Wv)(v,{shadow:"never"},{header:(0,a.k6)((()=>[(0,a.Lk)("div",o,[(0,a.Lk)("span",c,(0,s.v_)(e.$t("action.text")),1),r.state.isSelf?((0,a.uX)(),(0,a.Wv)(u,{key:0,name:"ActionStatic"})):(0,a.Q3)("",!0)])])),footer:(0,a.k6)((()=>[(0,a.Lk)("div",l,[(0,a.bF)(h,{type:"success",onClick:r.handleSave},{default:(0,a.k6)((()=>[(0,a.eW)((0,s.v_)(e.$t("common.confirm")),1)])),_:1},8,["onClick"])])])),default:(0,a.k6)((()=>[(0,a.Lk)("div",null,[(0,a.bo)((0,a.bF)(m,{modelValue:r.state.data,"onUpdate:modelValue":t[0]||(t[0]=e=>r.state.data=e),rows:10,type:"textarea",resize:"none",onChange:r.handleSave},null,8,["modelValue","onChange"]),[[f]])])])),_:1})}var d=n(4);const i=e=>(0,d.zG)("action/GetServerArgs",e),u=e=>(0,d.zG)("action/SetServerArgs",e);var m=n(3830),h=n(1219),v=n(144),f=n(5931),k=n(2322),p={props:["machineId"],components:{Sync:k.A},setup(e){const{t:t}=(0,f.s9)(),n=(0,m.B)(),s=(0,v.Kh)({data:"",machineId:e.machineId||n.value.config.Client.Id,isSelf:(0,a.EW)((()=>s.machineId==n.value.config.Client.Id))}),o=()=>{i(s.machineId).then((e=>{s.data=e}))},c=()=>{try{if(s.data&&"object"!=typeof JSON.parse(s.data))return void h.nk.error(t("action.jsonError"))}catch(e){return void h.nk.error(t("action.jsonError"))}u({Key:s.machineId,Value:s.data}).then((()=>{h.nk.success(t("common.oper"))})).catch((e=>{console.log(e),h.nk.error(t("common.operFail"))}))};return(0,a.sV)((()=>{o()})),{state:s,handleSave:c}}},g=n(1241);const I=(0,g.A)(p,[["render",r]]);var y=I},2322:function(e,t,n){n.d(t,{A:function(){return I}});var a=n(6768),s=n(4232);const o={class:"t-c"},c={class:"t-c w-100 mgt-1"};function l(e,t,n,l,r,d){const i=(0,a.g2)("Share"),u=(0,a.g2)("el-icon"),m=(0,a.g2)("el-button"),h=(0,a.g2)("el-transfer"),v=(0,a.g2)("el-dialog"),f=(0,a.g2)("AccessBoolean");return(0,a.uX)(),(0,a.Wv)(f,{value:"Sync"},{default:(0,a.k6)((({values:n})=>[(0,a.Lk)("div",null,[(0,a.RG)(e.$slots,"default",{},(()=>[(0,a.bF)(m,{class:"btn",size:"small",onClick:e=>l.handleShowSync(n)},{default:(0,a.k6)((()=>[(0,a.bF)(u,null,{default:(0,a.k6)((()=>[(0,a.bF)(i)])),_:1})])),_:2},1032,["onClick"])])),(0,a.bF)(v,{class:"options-center",title:e.$t("server.sync"),"destroy-on-close":"",modelValue:l.state.showNames,"onUpdate:modelValue":t[2]||(t[2]=e=>l.state.showNames=e),width:"54rem",top:"2vh"},{default:(0,a.k6)((()=>[(0,a.Lk)("div",null,[(0,a.Lk)("div",o,(0,s.v_)(`${e.$t("server.sync")}${e.$t(`server.async${l.state.name}`)}${e.$t("server.asyncText")}`),1),(0,a.bF)(h,{class:"src-tranfer mgt-1",modelValue:l.state.srcIdValues,"onUpdate:modelValue":t[0]||(t[0]=e=>l.state.srcIdValues=e),filterable:"","filter-method":l.srcFilterMethod,data:l.state.srcIds,titles:[e.$t("firewall.unselect"),e.$t("firewall.selected")],props:{key:"MachineId",label:"MachineName"}},null,8,["modelValue","filter-method","data","titles"]),(0,a.Lk)("div",c,[(0,a.bF)(m,{onClick:t[1]||(t[1]=e=>l.state.showNames=!1)},{default:(0,a.k6)((()=>[(0,a.eW)((0,s.v_)(e.$t("common.cancel")),1)])),_:1}),(0,a.bF)(m,{type:"primary",onClick:l.handleConfirm},{default:(0,a.k6)((()=>[(0,a.eW)((0,s.v_)(e.$t("common.confirm")),1)])),_:1},8,["onClick"])])])])),_:1},8,["title","modelValue"])])])),_:3})}var r=n(9299),d=n(4);const i=e=>(0,d.zG)("sync/Sync",e);var u=n(3830),m=n(7477),h=n(1219),v=n(144),f=n(5931),k={props:["name"],components:{Share:m.SYj},setup(e){const{t:t}=(0,f.s9)(),n=((0,u.B)(),(0,v.Kh)({name:e.name,loading:!1,showNames:!1,srcIdValues:[],srcIds:[]})),a=()=>{i({names:[e.name],ids:n.srcIdValues}).then((e=>{h.nk.success(t("common.oper")),n.showNames=!1}))},s=e=>{e.Sync?(n.showNames=!0,o()):h.nk.success(t("common.access"))},o=()=>{n.loading=!0,(0,r.NT)().then((e=>{n.loading=!1,n.srcIds=e})).catch((e=>{n.loading=!1}))},c=(e,t)=>t.MachineName.toLowerCase().includes(e.toLowerCase());return{state:n,handleShowSync:s,srcFilterMethod:c,handleConfirm:a}}},p=n(1241);const g=(0,p.A)(k,[["render",l]]);var I=g},4076:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var a=n(6768);const s={class:"action-wrap"};function o(e,t,n,o,c,l){const r=(0,a.g2)("Action");return(0,a.uX)(),(0,a.CE)("div",s,[(0,a.bF)(r,{machineId:o.state.machineId},null,8,["machineId"])])}var c=n(144),l=n(6271),r={props:["machineId"],components:{Action:l.A},setup(e){const t=(0,c.Kh)({machineId:e.machineId});return{state:t}}},d=n(1241);const i=(0,d.A)(r,[["render",o],["__scopeId","data-v-768e8d60"]]);var u=i}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,56 +0,0 @@
target=$(cd $(dirname $0); pwd)
image="snltty/linker"
fs=('linker')
ps=('musl' 'debian' 'kvm')
rs=('x64' 'arm64' 'arm')
cd ../src/linker.web
npm install &&
npm run build &&
cd ../../
for f in ${fs[@]}
do
for p in ${ps[@]}
do
for r in ${rs[@]}
do
rr=linux-${p}-${r}
if [ $p = "debian" ]
then
rr=linux-${r}
fi
if [ $p = "kvm" ]
then
rr=linux-${r}
fi
dotnet publish ../src/${f} -c release -f net8.0 -o ../public/publish/docker/linux-${p}-${r}/${f} -r ${rr} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf ../src/linker/Dockerfile-${p} ../public/publish/docker/linux-${p}-${r}/${f}/Dockerfile-${p}
cp -rf ../public/extends/any/web ../public/publish/docker/linux-${p}-${r}/${f}/web
mkdir -p ../public/publish/docker/linux-${p}-${r}/${f}/configs
mkdir -p ../public/publish/docker/linux-${p}-${r}/${f}/logs
if [ $p = "musl" ]
then
cp -rf ../src/linker/libmsquic-musl-${r}.so ../public/publish/docker/linux-${p}-${r}/${f}/libmsquic.so
fi
if [ $p = "kvm" ]
then
cp -rf ../install-package/kvm/ ../public/publish/docker/linux-${p}-${r}/${f}/kvm/
fi
done
cd ../public/publish/docker/linux-${p}-x64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-x64/${f}/Dockerfile-${p} --platform="linux/x86_64" --force-rm -t "${image}-${p}-x64:latest" -t "${image}-${p}-x64:v{{version}}" . --push
cd ../../../../../shells
cd ../public/publish/docker/linux-${p}-arm64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm64/${f}/Dockerfile-${p} --platform="linux/arm64" --force-rm -t "${image}-${p}-arm64:latest" -t "${image}-${p}-arm64:v{{version}}" . --push
cd ../../../../../shells
cd ../public/publish/docker/linux-${p}-arm/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm/${f}/Dockerfile-${p} --platform="linux/arm/v7" --force-rm -t "${image}-${p}-arm:latest" -t "${image}-${p}-arm:v{{version}}" . --push
cd ../../../../../shells
done
done

View File

@@ -1,44 +0,0 @@
target=$(cd $(dirname $0); pwd)
rs=('x64' 'arm64' 'arm')
index=0
cd ../src/linker.web
npm install &&
npm run build &&
cd ../../
for r in ${rs[@]}
do
dotnet publish ../src/linker -c release -f net8.0 -o ../public/publish/${r} -r linux-musl-${r} -p:PublishSingleFile=true --self-contained true -p:TrimMode=partial -p:TieredPGO=true -p:DebugType=none -p:EventSourceSupport=false -p:DebugSymbols=false -p:EnableCompressionInSingleFile=true -p:DebuggerSupport=false -p:EnableUnsafeBinaryFormatterSerialization=false -p:EnableUnsafeUTF7Encoding=false -p:HttpActivityPropagationSupport=false -p:InvariantGlobalization=true -p:MetadataUpdaterSupport=false -p:UseSystemResourceKeys=true -p:MetricsSupport=false -p:StackTraceSupport=false -p:XmlResolverIsNetworkingEnabledByDefault=false
cp -rf ../public/extends/any/web ../public/publish/${r}/web
mkdir -p ../public/publish/${r}/configs
mkdir -p ../public/publish/${r}/logs
cp -rf ../src/linker/libmsquic-musl-${r}.so ../public/publish/${r}/libmsquic.so
mkdir -p ../public/publish-ipk/${r}
cp -rf ../install-package/ipk/package/* ../public/publish-ipk/${r}/
cp -rf ../install-package/ipk/libs/${r}/* ../public/publish-ipk/${r}/data/
mkdir -p ../public/publish-ipk/${r}/data/usr/bin/linker
cp -rf ../public/publish/${r}/* ../public/publish-ipk/${r}/data/usr/bin/linker/
sed -i "s|{version}|{{version}}|g" ../public/publish-ipk/${r}/control/control
sed -i 's/\r$//' ../public/publish-ipk/${r}/data/etc/init.d/linker
sed -i 's/\r$//' ../public/publish-ipk/${r}/control/control
sed -i 's/\r$//' ../public/publish-ipk/${r}/control/postinst
sed -i 's/\r$//' ../public/publish-ipk/${r}/control/prerm
chmod +x ../public/publish-ipk/${r}/data/etc/init.d/linker
chmod +x ../public/publish-ipk/${r}/control/control
chmod +x ../public/publish-ipk/${r}/control/postinst
chmod +x ../public/publish-ipk/${r}/control/prerm
cd ../public/publish-ipk/${r}
tar -czf data.tar.gz -C data/ .
tar -czf control.tar.gz -C control/ .
echo "2.0" > debian-binary
tar -czf linker-${r}.ipk debian-binary data.tar.gz control.tar.gz
cd ../../../shells
((index++))
done