ubuntu resolute

This commit is contained in:
Maxime KINTS
2026-05-16 23:42:06 +02:00
commit c0f607fa0b
944 changed files with 112243 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
module.exports = function(app, checkApiKey) {
app.post('/action/newrepo', checkApiKey, (req, res) => {
const repoName = req.body.repoName;
if (!repoName) {
return res.status(400).send('Repo name is required');
}
const repoPath = `/var/svn/${repoName}`;
const cmd = `svnadmin create ${repoPath}`;
exec(cmd, async (err, stdout, stderr) => {
if (err) {
return res.status(500).send(`Error creating repo: ${stderr}`);
}
try {
await setPermissions(repoName);
await updateAuthzFile(repoName);
res.send({
message: `Repository ${repoName} created successfully`,
apiKey: process.env.API_KEY
});
} catch (error) {
res.status(500).send(`Error setting permissions: ${error}`);
}
});
});
async function setPermissions(repo) {
try {
const svnReposPath = `/var/svn/${repo}`;
const chmodCmd = `chmod -R 775 ${svnReposPath}`;
const chownCmd = `chown -R www-data:www-data ${svnReposPath}`;
await executeCommand(chmodCmd);
await executeCommand(chownCmd);
console.log('Permissions updated successfully.');
} catch (error) {
console.error('Error setting permissions:', error);
throw error;
}
}
function executeCommand(cmd) {
return new Promise((resolve, reject) => {
exec(cmd, (error, stdout, stderr) => {
if (error) {
reject(`Error executing command: ${cmd}\n${stderr}`);
} else {
resolve(stdout);
}
});
});
}
};