Merge branch 'florianbrede-ayet:main' into main

pull/4/head
Adam Black 2021-09-29 19:33:28 +01:00 committed by GitHub
commit bfc3f6806e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 7 deletions

22
Dockerfile 100644
View File

@ -0,0 +1,22 @@
FROM alpine:latest
CMD ["crond", "-f"]
RUN echo -e "* * * * * cd /retropilot-server/; node -r esm worker.js\n* * * * * cd /retropilot-server; node -r esm server.js" > /etc/crontabs/root
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Install dependencies
RUN apk add --no-cache git nodejs npm
# TODO maybe install nodejs-npm?
# Install Retropilot
RUN git clone "https://github.com/florianbrede-ayet/retropilot-server.git"; cd retropilot-server; npm install
# Install node packages, even though we should have it through retropilot...
RUN npm install -g esm
# Remove build dependencies
RUN apk del git

View File

@ -443,7 +443,7 @@ async function updateSegments() {
affectedDriveInitData={};
const drive_segments = await dbProtectedAll('SELECT * FROM drive_segments WHERE upload_complete = ? AND is_stalled = ? ORDER BY created ASC', false, false);
if (drive_segments!==null) {
if (drive_segments!=null) {
for (var t=0; t<drive_segments.length; t++) {
var segment = drive_segments[t];
@ -545,7 +545,7 @@ async function updateDrives() {
var playlistSegmentStrings='';
const drive_segments = await dbProtectedAll('SELECT * FROM drive_segments WHERE drive_identifier = ? AND dongle_id = ? ORDER BY segment_id ASC', driveIdentifier, dongleId);
if (drive_segments!==null) {
if (drive_segments!=null) {
for (var t=0; t<drive_segments.length; t++) {
if (!drive_segments[t].upload_complete) uploadComplete=false;
if (!drive_segments[t].is_processed) isProcessed=false;
@ -647,7 +647,7 @@ async function removeDeletedDrivesPhysically() {
'DELETE FROM drive_segments WHERE drive_identifier = ? AND dongle_id = ?',
deletedDrives[t].identifier, deletedDrives[t].dongle_id);
if (driveResult!==null && driveSegmentResult!==null) deleteFolderRecursive(drivePath, { recursive: true });
if (driveResult!=null && driveSegmentResult!=null) deleteFolderRecursive(drivePath, { recursive: true });
affectedDevices[deletedDrives[t].dongle_id]=true;
} catch (exception) {
logger.error(exception);
@ -665,7 +665,7 @@ async function deleteOverQuotaDrives() {
var foundDriveToDelete=false;
const driveNormal = await dbProtectedGet('SELECT * FROM drives WHERE dongle_id = ? AND is_preserved = ? AND is_deleted = ? ORDER BY created ASC LIMIT 1', devices[t].dongle_id, false, false);
if (driveNormal!==null) {
if (driveNormal!=null) {
logger.info("deleteOverQuotaDrives drive "+driveNormal.dongle_id+" "+driveNormal.identifier+" (normal) is deleted for over-quota");
const driveResult = await dbProtectedRun(
'UPDATE drives SET is_deleted = ? WHERE id = ?',
@ -675,7 +675,7 @@ async function deleteOverQuotaDrives() {
if (!foundDriveToDelete) {
const drivePreserved = await dbProtectedGet('SELECT * FROM drives WHERE dongle_id = ? AND is_preserved = ? AND is_deleted = ? ORDER BY created ASC LIMIT 1', devices[t].dongle_id, true, false);
if (drivePreserved!==null) {
if (drivePreserved!=null) {
logger.info("deleteOverQuotaDrives drive "+drivePreserved.dongle_id+" "+drivePreserved.identifier+" (preserved!) is deleted for over-quota");
const driveResult = await dbProtectedRun(
'UPDATE drives SET is_deleted = ? WHERE id = ?',
@ -766,7 +766,7 @@ async function mainWorkerLoop() {
// make sure bunzip2 is available
try {
execSync(`bunzip2 --version`);
execSync(`bunzip2 --help`);
}
catch (exception) {
logger.error("bunzip2 is not installed or not available in environment path")
@ -800,4 +800,4 @@ lockfile.lock('retropilot_worker.lock', { realpath: false, stale: 90000, update:
}).catch((e) => {
console.error(e)
process.exit();
});
});