Merge pull request #382 from Brikaa/file
pkg(file-0.0.1): Run executable
This commit is contained in:
commit
d8b430654b
|
@ -87,15 +87,6 @@ function get_job(body) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
|
||||||
files.filter(file => !file.encoding || file.encoding === 'utf8')
|
|
||||||
.length === 0
|
|
||||||
) {
|
|
||||||
return reject({
|
|
||||||
message: 'files must include at least one utf8 encoded file',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const rt = runtime.get_latest_runtime_matching_language_version(
|
const rt = runtime.get_latest_runtime_matching_language_version(
|
||||||
language,
|
language,
|
||||||
version
|
version
|
||||||
|
@ -106,6 +97,15 @@ function get_job(body) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
rt.language !== 'file' &&
|
||||||
|
!files.some(file => !file.encoding || file.encoding === 'utf8')
|
||||||
|
) {
|
||||||
|
return reject({
|
||||||
|
message: 'files must include at least one utf8 encoded file',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
for (const constraint of ['memory_limit', 'timeout']) {
|
for (const constraint of ['memory_limit', 'timeout']) {
|
||||||
for (const type of ['compile', 'run']) {
|
for (const type of ['compile', 'run']) {
|
||||||
const constraint_name = `${type}_${constraint}`;
|
const constraint_name = `${type}_${constraint}`;
|
||||||
|
|
|
@ -222,7 +222,9 @@ class Job {
|
||||||
} runtime=${this.runtime.toString()}`
|
} runtime=${this.runtime.toString()}`
|
||||||
);
|
);
|
||||||
|
|
||||||
const code_files = this.files.filter(file => file.encoding == 'utf8');
|
const code_files =
|
||||||
|
(this.runtime.language === 'file' && this.files) ||
|
||||||
|
this.files.filter(file => file.encoding == 'utf8');
|
||||||
|
|
||||||
logger.debug('Compiling');
|
logger.debug('Compiling');
|
||||||
|
|
||||||
|
@ -270,7 +272,9 @@ class Job {
|
||||||
} gid=${this.gid} runtime=${this.runtime.toString()}`
|
} gid=${this.gid} runtime=${this.runtime.toString()}`
|
||||||
);
|
);
|
||||||
|
|
||||||
const code_files = this.files.filter(file => file.encoding == 'utf8');
|
const code_files =
|
||||||
|
(this.runtime.language === 'file' && this.files) ||
|
||||||
|
this.files.filter(file => file.encoding == 'utf8');
|
||||||
|
|
||||||
if (this.runtime.compiled) {
|
if (this.runtime.compiled) {
|
||||||
eventBus.emit('stage', 'compile');
|
eventBus.emit('stage', 'compile');
|
||||||
|
|
|
@ -245,9 +245,18 @@ async function run_non_interactively(files, argv) {
|
||||||
|
|
||||||
exports.handler = async argv => {
|
exports.handler = async argv => {
|
||||||
const files = [...(argv.files || []), argv.file].map(file_path => {
|
const files = [...(argv.files || []), argv.file].map(file_path => {
|
||||||
|
const buffer = fs.readFileSync(file_path);
|
||||||
|
const encoding =
|
||||||
|
(buffer
|
||||||
|
.toString()
|
||||||
|
.split('')
|
||||||
|
.some(x => x.charCodeAt(0) >= 128) &&
|
||||||
|
'base64') ||
|
||||||
|
'utf8';
|
||||||
return {
|
return {
|
||||||
name: path.basename(file_path),
|
name: path.basename(file_path),
|
||||||
content: fs.readFileSync(file_path).toString(),
|
content: buffer.toString(encoding),
|
||||||
|
encoding,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Nothing to do here
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export PATH=$PWD:$PATH
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"language": "file",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"aliases": ["executable", "elf", "binary"]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
filename="$1"
|
||||||
|
chmod +x "$filename"
|
||||||
|
shift
|
||||||
|
./"$filename" "$@"
|
Binary file not shown.
Loading…
Reference in New Issue