diff --git a/deadlock-plugins/deadlock-extension/src/core/api.service.ts b/deadlock-plugins/deadlock-extension/src/core/api.service.ts index 630de2ca05ec413ad3e43f12699afb10bc90c784..b7321240493e82d6aef594a04a102d062dfdce38 100644 --- a/deadlock-plugins/deadlock-extension/src/core/api.service.ts +++ b/deadlock-plugins/deadlock-extension/src/core/api.service.ts @@ -1,4 +1,4 @@ -import axios, { AxiosInstance, AxiosRequestConfig } from 'axios'; +import axios, { AxiosInstance } from 'axios'; import { API_QUERY_REFERER, API_URL } from '../config'; import { GiteaPublicProperties } from '../model/giteaPublicProperties.model'; import { SshKeyPair } from '../model/sshKeyPair.model'; diff --git a/deadlock-plugins/deadlock-extension/src/core/gitMission.ts b/deadlock-plugins/deadlock-extension/src/core/gitMission.ts index 7c704b02fdb5db2b0c0412f639fb55fd4c83d22f..3bed6fd3f7d48a2dfcfa785cbf38a84cc76af3d0 100644 --- a/deadlock-plugins/deadlock-extension/src/core/gitMission.ts +++ b/deadlock-plugins/deadlock-extension/src/core/gitMission.ts @@ -49,7 +49,7 @@ export default class GitMission { log('Setup ssh agent'); await this.setupSshAgent(); - console.log('Init Git mission..'); + log('Init Git mission..'); const remote = await this.readRemote(); diff --git a/deadlock-plugins/deadlock-extension/src/recorder/index.ts b/deadlock-plugins/deadlock-extension/src/recorder/index.ts index 157d18f4b1604fedc96f92ff8f339c33362ca41a..0927ecf4f9af934c3d3ce1b92339570c9d0abaef 100644 --- a/deadlock-plugins/deadlock-extension/src/recorder/index.ts +++ b/deadlock-plugins/deadlock-extension/src/recorder/index.ts @@ -1,5 +1,5 @@ -import { Branch } from './../core/gitMission'; -import { ENABLE_AUTOMATIC_SAVE } from './../config'; +import { Branch } from '../core/gitMission'; +import { ENABLE_AUTOMATIC_SAVE } from '../config'; import CommandRecorder from './command-recorder'; import GitMission from '../core/gitMission'; import UserConfigNode from './userConfigNode'; @@ -63,10 +63,7 @@ export default class Recorder { log('Init GitMission'); gitMission = await new GitMission(userConfig).init(); - if (ENABLE_RECORDER_HTTP_SERVER) new HttpServer(gitMission); await this.setupFromRemoteRepo(gitMission); - - if (ENABLE_AUTOMATIC_SAVE) new AutomaticSave(PROJECT_DEADLOCK_DESKTOP_PATH, gitMission); } catch (e) { error('Cannot setup user repo.'); error(e); @@ -77,6 +74,20 @@ export default class Recorder { error('Error while setup project sources'); error(e); } + + try { + if (ENABLE_AUTOMATIC_SAVE) new AutomaticSave(PROJECT_DEADLOCK_DESKTOP_PATH, gitMission); + } catch (e) { + error('Error while setup automatic save'); + error(e); + } + + try { + if (ENABLE_RECORDER_HTTP_SERVER) new HttpServer(gitMission); + } catch (e) { + error('Error while setup recorder http server'); + error(e); + } } } diff --git a/deadlock-plugins/deadlock-extension/src/recorder/preStop.ts b/deadlock-plugins/deadlock-extension/src/recorder/preStop.ts deleted file mode 100644 index a6f754c6bac81e0303b956b013ecb2eeda77a3ed..0000000000000000000000000000000000000000 --- a/deadlock-plugins/deadlock-extension/src/recorder/preStop.ts +++ /dev/null @@ -1,50 +0,0 @@ -import UserConfigNode from './userConfigNode'; -import GitMission from '../core/gitMission'; -import { PROJECT_DEADLOCK_DESKTOP_PATH, PROJECT_SRC_PATH } from '../core/config'; - -import { CommitFrom, error, log, updateRemote } from './utils'; - -const util = require('util'); -const exec = util.promisify(require('child_process').exec); - -async function containsDiff() { - try { - // https://man7.org/linux/man-pages/man1/diff.1.html - // Exit status is 0 if inputs are the same, 1 if different, 2 if trouble. - await exec(`diff -qr ${PROJECT_SRC_PATH} ${PROJECT_DEADLOCK_DESKTOP_PATH}`); - // When status code is 0 exec does not fail - } catch (result) { - // when status code is > 0 - if (result.code === 1) { - const stdout = result.stdout; - if (stdout.indexOf('Files ') !== -1 || stdout.indexOf('Only in /home/deadlock/') !== -1) { - // if user created new file or added a directory - return true; - } - } else { - // print error - error(result.stderr); - } - } - return false; -} - -(async () => { - try { - log('Container will die'); - - const userConfig = new UserConfigNode(); - await userConfig.init(); - - if (!userConfig.isProfessor()) { - log('Save user code..'); - const gitMission = await new GitMission(userConfig).init(); - if (await containsDiff()) { - await updateRemote(gitMission, CommitFrom.Auto); - } - } - } catch (e) { - error('Cannot push user code at the end..'); - error(e); - } -})(); diff --git a/deadlock-plugins/deadlock-extension/src/recorder/services/file-watcher.ts b/deadlock-plugins/deadlock-extension/src/recorder/services/file-watcher.ts index b46e7a142396970c3f7c7b56f845a6da4a1523d8..133048b84824e25cb69b094e29764a4f24a71ff5 100644 --- a/deadlock-plugins/deadlock-extension/src/recorder/services/file-watcher.ts +++ b/deadlock-plugins/deadlock-extension/src/recorder/services/file-watcher.ts @@ -11,13 +11,11 @@ export default class FileWatcher { } setupWatcher() { - // Without timeout, chokidar watch when file is init - setTimeout(() => { - const watcher = chokidar.watch(this.watchFilePatterns, { - cwd: this.folderToWatch, - ignored: this.ignoreFilePatterns, - }); - watcher.on('change', this.onFilesChangeAction); - }, 1000); + const watcher = chokidar.watch(this.watchFilePatterns, { + cwd: this.folderToWatch, + ignored: this.ignoreFilePatterns, + ignoreInitial: true, + }); + watcher.on('change', this.onFilesChangeAction); } } diff --git a/deadlock-plugins/deadlock-extension/src/recorder/utils.ts b/deadlock-plugins/deadlock-extension/src/recorder/utils.ts index aad779a410064e9e17955cc4d9694af067592a22..f3737fdc1f1f5975e2b48b6864ccf79c3a71a353 100644 --- a/deadlock-plugins/deadlock-extension/src/recorder/utils.ts +++ b/deadlock-plugins/deadlock-extension/src/recorder/utils.ts @@ -138,7 +138,7 @@ async function commitAndPushCode(gitMission: GitMission) { await gitMission.commit(currentDate); await gitMission.push(); log('Commit & push done.'); - } catch (e) { + } catch (e: any) { error(`[${e.status}] cannot commitAndPush code: ${e.stderr}`); error(e.message); throw new Error(e); @@ -157,7 +157,7 @@ async function mergeMaster(gitMission: GitMission) { await gitMission.push(); log('Merge to master done'); await gitMission.checkout(Branch.LIVE); - } catch (e) { + } catch (e: any) { error(`[${e.status}] cannot commitAndPush code: ${e.stderr}`); error(e.message); throw new Error(e); diff --git a/start.desktop.sh b/start.desktop.sh index c7847a1f74d635392709b99f5dcab2bc7ff6eb14..e211e094b220bef792b589d21ab61ae80c54647f 100644 --- a/start.desktop.sh +++ b/start.desktop.sh @@ -24,7 +24,7 @@ else fi -su deadlock -c "python setup_trace.py" +su deadlock -c "sudo python /setup_trace.py" rm setup_trace.py