mirror of
https://github.com/laurent22/joplin.git
synced 2025-01-02 12:47:41 +02:00
This commit is contained in:
parent
035557de9f
commit
e3ba605592
@ -12,9 +12,12 @@ import waitForCliInput from './utils/waitForCliInput';
|
||||
import getPathToPatchFileFor from './utils/getPathToPatchFileFor';
|
||||
import getCurrentCommitHash from './utils/getCurrentCommitHash';
|
||||
|
||||
type BeforeEachInstallCallback = (buildDir: string, pluginName: string)=> Promise<void>;
|
||||
interface Options {
|
||||
beforeInstall: (buildDir: string, pluginName: string)=> Promise<void>;
|
||||
beforePatch: ()=> Promise<void>;
|
||||
}
|
||||
|
||||
const buildDefaultPlugins = async (outputParentDir: string|null, beforeInstall: BeforeEachInstallCallback) => {
|
||||
const buildDefaultPlugins = async (outputParentDir: string|null, options: Options) => {
|
||||
const pluginSourcesDir = resolve(join(__dirname, 'plugin-sources'));
|
||||
const pluginRepositoryData = await readRepositoryJson(join(__dirname, 'pluginRepositories.json'));
|
||||
|
||||
@ -71,11 +74,8 @@ const buildDefaultPlugins = async (outputParentDir: string|null, beforeInstall:
|
||||
logStatus('Initializing repository.');
|
||||
await execCommand('git init . -b main');
|
||||
|
||||
logStatus('Creating initial commit.');
|
||||
await execCommand('git add .');
|
||||
await execCommand(['git', 'config', 'user.name', 'Build script']);
|
||||
await execCommand(['git', 'config', 'user.email', '']);
|
||||
await execCommand(['git', 'commit', '-m', 'Initial commit']);
|
||||
logStatus('Running before-patch hook.');
|
||||
await options.beforePatch();
|
||||
|
||||
const patchFile = getPathToPatchFileFor(pluginId);
|
||||
if (await exists(patchFile)) {
|
||||
@ -83,7 +83,7 @@ const buildDefaultPlugins = async (outputParentDir: string|null, beforeInstall:
|
||||
await execCommand(['git', 'apply', patchFile]);
|
||||
}
|
||||
|
||||
await beforeInstall(buildDir, pluginId);
|
||||
await options.beforeInstall(buildDir, pluginId);
|
||||
|
||||
logStatus('Installing dependencies.');
|
||||
await execCommand('npm install');
|
||||
|
@ -1,7 +1,10 @@
|
||||
import buildDefaultPlugins from '../buildDefaultPlugins';
|
||||
|
||||
const buildAll = (outputDirectory: string) => {
|
||||
return buildDefaultPlugins(outputDirectory, async () => { });
|
||||
return buildDefaultPlugins(outputDirectory, {
|
||||
beforeInstall: async () => { },
|
||||
beforePatch: async () => { },
|
||||
});
|
||||
};
|
||||
|
||||
export default buildAll;
|
||||
|
@ -8,7 +8,16 @@ import getPathToPatchFileFor from '../utils/getPathToPatchFileFor';
|
||||
const editPatch = async (targetPluginId: string, outputParentDir: string|null) => {
|
||||
let patchedPlugin = false;
|
||||
|
||||
await buildDefaultPlugins(outputParentDir, async (buildDir, pluginId) => {
|
||||
await buildDefaultPlugins(outputParentDir, {
|
||||
beforePatch: async () => {
|
||||
// To make updating just the patch possible, a commit is created just before applying
|
||||
// the patch.
|
||||
await execCommand('git add .');
|
||||
await execCommand(['git', 'config', 'user.name', 'Build script']);
|
||||
await execCommand(['git', 'config', 'user.email', '']);
|
||||
await execCommand(['git', 'commit', '-m', 'Initial commit']);
|
||||
},
|
||||
beforeInstall: async (buildDir, pluginId) => {
|
||||
if (pluginId !== targetPluginId) {
|
||||
return;
|
||||
}
|
||||
@ -21,6 +30,7 @@ const editPatch = async (targetPluginId: string, outputParentDir: string|null) =
|
||||
await copy(join(buildDir, './diff.diff'), getPathToPatchFileFor(pluginId));
|
||||
|
||||
patchedPlugin = true;
|
||||
},
|
||||
});
|
||||
|
||||
if (!patchedPlugin) {
|
||||
|
Loading…
Reference in New Issue
Block a user