Initial commit
This commit is contained in:
commit
b512233577
5 changed files with 154 additions and 0 deletions
10
README.md
Normal file
10
README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# SVR.JS
|
||||
SVR.JS is a web server running on Node.JS.
|
||||
This npm package supplies only *create-svrjs-server* utility for installing and updating SVR.JS on current working directory. It doesn't include SVR.JS itself.
|
||||
To install SVR.JS type one of those commands:
|
||||
|
||||
```bash
|
||||
create-svrjs-server lts #Latest SVR.JS LTS version
|
||||
create-svrjs-server latest #Latest SVR.JS version
|
||||
create-svrjs-server 3.6.1 #SVR.JS 3.6.1 (replace 3.6.1 with your desired version)
|
||||
```
|
105
downloader.js
Executable file
105
downloader.js
Executable file
|
@ -0,0 +1,105 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
var version = process.argv[2];
|
||||
var https = require("https");
|
||||
var os = require("os");
|
||||
var fs = require("fs");
|
||||
var zip = require("zip");
|
||||
|
||||
var isSVRJSinstalled = fs.existsSync("svr.js");
|
||||
|
||||
if(!version) {
|
||||
console.log("A utility to create and update SVR.JS");
|
||||
console.log("Usage:");
|
||||
console.log("create-svrjs-server <version>");
|
||||
console.log(" version - SVR.JS version you want to download");
|
||||
console.log(" 'latest' -> latest SVR.JS version");
|
||||
console.log(" 'lts' -> latest LTS SVR.JS version");
|
||||
console.log(" '3.6.1' -> SVR.JS 3.6.1");
|
||||
console.log("WARNING: Doesn't support nightly SVR.JS versions!");
|
||||
} else if(version == "latest" || version == "lts") {
|
||||
https.get({
|
||||
hostname: "svrjs.org",
|
||||
port: 443,
|
||||
path: "/",
|
||||
method: "GET",
|
||||
headers: {
|
||||
"User-Agent": "create-svrjs-server"
|
||||
}
|
||||
}, function(res) {
|
||||
if(res.statusCode != 200) {
|
||||
console.log("Server returns " + res.statusCode + " HTTP code");
|
||||
return;
|
||||
}
|
||||
var data = "";
|
||||
res.on("data", function(chunk) {
|
||||
data += chunk;
|
||||
});
|
||||
res.on("end", function() {
|
||||
var regex = />Download SVR\.JS ([^ <]+)<\/a>/;
|
||||
if(version == "lts") {
|
||||
regex = />Download SVR\.JS ([^ <]+) LTS<\/a>/;
|
||||
}
|
||||
var dlver = data.match(regex);
|
||||
if(!dlver) {
|
||||
console.log("Can't obtain latest version from main page");
|
||||
} else {
|
||||
console.log("Selected SVR.JS " + dlver[1]);
|
||||
downloadSVRJS(dlver[1]);
|
||||
}
|
||||
});
|
||||
}).on("error", function() {
|
||||
console.log("Can't connect to SVR.JS download server!");
|
||||
});
|
||||
} else {
|
||||
downloadSVRJS(version);
|
||||
}
|
||||
|
||||
function downloadSVRJS(version) {
|
||||
https.get({
|
||||
hostname: "svrjs.org",
|
||||
port: 443,
|
||||
path: "/dl/svr.js." + version + ".zip",
|
||||
method: "GET",
|
||||
headers: {
|
||||
"User-Agent": "create-svrjs-server"
|
||||
}
|
||||
}, function(res) {
|
||||
if(res.statusCode != 200) {
|
||||
console.log("Server returns " + res.statusCode + " HTTP code while trying to download");
|
||||
return;
|
||||
}
|
||||
var zipFile = fs.createWriteStream("svrjs.zip");
|
||||
res.on("end", function() {
|
||||
console.log("Downloaded .zip file");
|
||||
fs.readFile("svrjs.zip", function(err,data) {
|
||||
if(err) {
|
||||
console.log("Can't read downloaded file!");
|
||||
return;
|
||||
} else {
|
||||
var reader = zip.Reader(data);
|
||||
var allFiles = reader.toObject();
|
||||
var allFileNames = Object.keys(allFiles);
|
||||
for(var i=0;i<allFileNames.length;i++) {
|
||||
var paths = allFileNames[i].split("/");
|
||||
if(!isSVRJSinstalled || allFileNames[i].match(/^(?:[^\/.]+\.compressed|svr(?:_new)?\.js|node_modules(?:\/|$))/)) {
|
||||
for(var j=0;j<paths.length-1;j++) {
|
||||
var dirname = JSON.parse(JSON.stringify(paths)).splice(0,j+1).join("/");
|
||||
if(!fs.existsSync(dirname)) {
|
||||
fs.mkdirSync(dirname);
|
||||
}
|
||||
}
|
||||
fs.writeFileSync(allFileNames[i], allFiles[allFileNames[i]]);
|
||||
}
|
||||
}
|
||||
fs.unlinkSync("svrjs.zip");
|
||||
console.log("SVR.JS " + (isSVRJSinstalled ? "updated" : "installed") + "! To start SVR.JS, type \"" + (process.argv0 ? process.argv0 : "node") + " svr.js\" For more information refer to SVR.JS documentation at https://svrjs.org/docs");
|
||||
}
|
||||
});
|
||||
});
|
||||
res.pipe(zipFile);
|
||||
}).on("error", function() {
|
||||
console.log("Can't connect to SVR.JS download server!");
|
||||
});
|
||||
}
|
||||
|
1
index.js
Normal file
1
index.js
Normal file
|
@ -0,0 +1 @@
|
|||
throw new Error("SVR.JS downloader is not Node.JS module!");
|
36
package.json
Normal file
36
package.json
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"name": "svrjs",
|
||||
"version": "3.6.1-stub",
|
||||
"description": "A web server running on Node.JS",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.svrjs.org/git/svrjs.git"
|
||||
},
|
||||
"keywords": [
|
||||
"web",
|
||||
"server",
|
||||
"http",
|
||||
"http2",
|
||||
"js",
|
||||
"javascript"
|
||||
],
|
||||
"homepage": "https://svrjs.org",
|
||||
"author": "DorianTech S.A.",
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
},
|
||||
"bin": {
|
||||
"create-svrjs-server": "./downloader.js"
|
||||
},
|
||||
"script": {
|
||||
"postinstall": "node warn.js"
|
||||
},
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"zip": "^1.2.0"
|
||||
}
|
||||
}
|
2
warn.js
Normal file
2
warn.js
Normal file
|
@ -0,0 +1,2 @@
|
|||
console.log("Thank you for installing SVR.JS downloader!");
|
||||
console.log("To install SVR.JS, use create-svrjs-server command.");
|
Loading…
Reference in a new issue