1
0
mirror of https://github.com/S2-/gitlit synced 2025-08-02 20:30:05 +02:00

make lock/unlock work

This commit is contained in:
s2
2018-05-18 16:52:09 +02:00
parent 80699aa7c5
commit 0a2e639e1c
194 changed files with 34229 additions and 12 deletions

View File

@@ -1,4 +1,4 @@
const {app, BrowserWindow} = require('electron');
const {app, BrowserWindow, ipcMain} = require('electron');
const path = require('path');
const url = require('url');
const electronLocalshortcut = require('electron-localshortcut');
@@ -9,6 +9,7 @@ const args = require('minimist')(process.argv.slice(2), {
}
});
const repoDir = args._.join(' ');
function getLfsFileList(dir, cb) {
exec('git lfs ls-files', {
@@ -19,9 +20,10 @@ function getLfsFileList(dir, cb) {
cb(error);
return;
}
let parsedFiles = [];
if (stdout) {
let files = stdout.split('\n');
let parsedFiles = [];
files.forEach((file) => {
file = file.split(' * ');
if (file[1]) {
@@ -29,6 +31,8 @@ function getLfsFileList(dir, cb) {
}
});
cb(null, parsedFiles);
} else {
cb(null, parsedFiles);
}
});
@@ -43,9 +47,10 @@ function getLfsLocks(dir, cb) {
cb(error);
return;
}
let parsedFiles = [];
if (stdout) {
let files = stdout.split('\n');
let parsedFiles = [];
files.forEach((file) => {
if (file) {
let fileName = file.split('\t')[0].trim();
@@ -59,6 +64,8 @@ function getLfsLocks(dir, cb) {
}
});
cb(null, parsedFiles);
} else {
cb(null, parsedFiles);
}
});
@@ -93,8 +100,16 @@ function createWindow() {
win.webContents.on('did-finish-load', () => {
console.log('getting file list and lock status...');
getLfsFileList(args._.join(' '), (err, files) => {
getLfsLocks(args._.join(' '), (err, lockedFiles) => {
getLfsFileList(repoDir, (err, files) => {
if (err) {
console.error(err);
process.exit(1);
}
getLfsLocks(repoDir, (err, lockedFiles) => {
if (err) {
console.error(err);
process.exit(1);
}
let allFiles = [];
files.forEach((file) => {
@@ -113,4 +128,50 @@ function createWindow() {
});
}
ipcMain.on('unlock', (event, file) => {
exec('git lfs unlock "' + file + '"', {
cwd: repoDir
},
(error, stdout, stderr) => {
let notification = {
message: (error && error.message) || stderr,
type: 'error'
};
if (stdout) {
notification = {
file: file,
event: 'unlock',
message: stdout,
type: 'info'
};
}
win.webContents.send('notification', notification);
});
});
ipcMain.on('lock', (event, file) => {
exec('git lfs lock "' + file + '"', {
cwd: repoDir
},
(error, stdout, stderr) => {
let notification = {
message: (error && error.message) || stderr,
type: 'error'
};
if (stdout) {
notification = {
file: file,
event: 'lock',
message: stdout,
type: 'info'
};
}
win.webContents.send('notification', notification);
});
});
app.on('ready', createWindow);