style: format code

This commit is contained in:
2024-02-12 00:59:07 +03:00
parent 2370c9c2b4
commit 05c736ddd1
84 changed files with 2868 additions and 2977 deletions

View File

@@ -1,114 +1,134 @@
const gulp = require('gulp');
const fs = require('fs');
const fse = require('fs-extra');
const path = require('path');
const through = require('through2');
const gulp = require("gulp");
const fs = require("fs");
const fse = require("fs-extra");
const path = require("path");
const through = require("through2");
class Package {
constructor(platform, type, version, versionInt) {
this.platform = platform;
this.type = type;
this.version = version;
this.versionInt = versionInt;
}
constructor(platform, type, version, versionInt) {
this.platform = platform;
this.type = type;
this.version = version;
this.versionInt = versionInt;
}
get key() {
return [this.platform, this.type].join(":");
}
get key() {
return [this.platform, this.type].join(':');
static getPlatform(filename) {
for (const [platform, r] of [
["android", /^.*?\.apk$/],
["linux", /^.*?\.deb$/],
["linux", /^.*?linux\.tar\.gz$/],
["windows", /^.*?win\.zip$/],
["windows", /^.*?\.exe$/],
]) {
if (r.test(filename)) {
return platform;
}
}
return null;
}
static getPlatform(filename) {
for (const [platform, r] of [
['android', /^.*?\.apk$/],
['linux', /^.*?\.deb$/],
['linux', /^.*?linux\.tar\.gz$/],
['windows', /^.*?win\.zip$/],
['windows', /^.*?\.exe$/],
]) {
if (r.test(filename)) {
return platform;
}
}
return null;
static getType(filename) {
for (const [type, r] of [
["apk", /^.*?\.apk$/],
["deb", /^.*?\.deb$/],
["archive", /^.*?\.tar\.gz$/],
["archive", /^.*?\.zip$/],
["exe", /^.*?\.exe$/],
]) {
if (r.test(filename)) {
return type;
}
}
return null;
}
static getType(filename) {
for (const [type, r] of [
['apk', /^.*?\.apk$/],
['deb', /^.*?\.deb$/],
['archive', /^.*?\.tar\.gz$/],
['archive', /^.*?\.zip$/],
['exe', /^.*?\.exe$/],
]) {
if (r.test(filename)) {
return type;
}
}
return null;
static getVersion(filename) {
const m = /(\d+)\.(\d+)\.(\d+)/.exec(filename);
if (m) {
return [
m[0],
parseInt(m[1]) * 10000 + parseInt(m[2]) * 100 + parseInt(m[3]),
];
}
return null;
}
static getVersion(filename) {
const m = /(\d+)\.(\d+)\.(\d+)/.exec(filename);
if (m) {
return [m[0], parseInt(m[1]) * 10000 + parseInt(m[2]) * 100 + parseInt(m[3])];
}
return null;
}
static parseFilename(filename) {
const platform = this.getPlatform(filename);
const type = this.getType(filename);
const version = this.getVersion(filename);
if (platform && type && version) {
return new Package(platform, type, version[0], version[1]);
}
return null;
static parseFilename(filename) {
const platform = this.getPlatform(filename);
const type = this.getType(filename);
const version = this.getVersion(filename);
if (platform && type && version) {
return new Package(platform, type, version[0], version[1]);
}
return null;
}
}
module.exports = (name, version, publishDir, publishUrl) => function publish(cb) {
module.exports = (name, version, publishDir, publishUrl) =>
function publish(cb) {
const packages = {};
fse.ensureDirSync(publishDir);
return gulp.series([
function copy() {
return gulp.src('target/app/@(android|archive|debian|installer)/*')
.pipe(through.obj(function (file, enc, cb) {
const pack = Package.parseFilename(file.path);
if (pack) {
this.push(file);
}
cb(null);
}))
.pipe(gulp.dest(publishDir))
},
function generate() {
return gulp.src(`${publishDir}/*/*`)
.pipe(through.obj(function (file, enc, cb) {
const basepath = file.path.replace(file.base + path.sep, '');
const pack = Package.parseFilename(file.path);
if (pack) {
if (!packages[pack.key] || packages[pack.key].versionInt < pack.versionInt) {
packages[pack.key] = {
platform: pack.platform,
type: pack.type,
version: pack.version,
versionInt: pack.versionInt,
path: basepath,
filename: basepath.split(path.sep).pop(),
url: `${publishUrl}/${basepath.replace(path.sep, "/")}`,
}
}
}
cb(null);
})).on('end', function () {
fs.writeFileSync(path.join(publishDir, 'packages.json'), JSON.stringify({
name: name,
version: version,
packages: Object.values(packages),
}, null, 4));
})
}
function copy() {
return gulp
.src("target/app/@(android|archive|debian|installer)/*")
.pipe(
through.obj(function (file, enc, cb) {
const pack = Package.parseFilename(file.path);
if (pack) {
this.push(file);
}
cb(null);
})
)
.pipe(gulp.dest(publishDir));
},
function generate() {
return gulp
.src(`${publishDir}/*/*`)
.pipe(
through.obj(function (file, enc, cb) {
const basepath = file.path.replace(file.base + path.sep, "");
const pack = Package.parseFilename(file.path);
if (pack) {
if (
!packages[pack.key] ||
packages[pack.key].versionInt < pack.versionInt
) {
packages[pack.key] = {
platform: pack.platform,
type: pack.type,
version: pack.version,
versionInt: pack.versionInt,
path: basepath,
filename: basepath.split(path.sep).pop(),
url: `${publishUrl}/${basepath.replace(path.sep, "/")}`,
};
}
}
cb(null);
})
)
.on("end", function () {
fs.writeFileSync(
path.join(publishDir, "packages.json"),
JSON.stringify(
{
name: name,
version: version,
packages: Object.values(packages),
},
null,
4
)
);
});
},
])(cb);
};
};
module.exports.Package = Package;