Skip to content

Commit

Permalink
fix(v2): read last update from inner git repositories
Browse files Browse the repository at this point in the history
  • Loading branch information
felipecrs committed Jun 23, 2021
1 parent 7e55aa1 commit 08f8e98
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
Expand Up @@ -31,15 +31,16 @@ describe('lastUpdate', () => {
test('non-existing file', async () => {
const consoleMock = jest.spyOn(console, 'error');
consoleMock.mockImplementation();
const nonExistingFileName = '.nonExisting';
const nonExistingFilePath = path.join(
__dirname,
'__fixtures__',
'.nonExisting',
nonExistingFileName,
);
expect(await getFileLastUpdate(nonExistingFilePath)).toBeNull();
expect(consoleMock).toHaveBeenCalledTimes(1);
expect(consoleMock.mock.calls[0][0].message).toContain(
`Command failed with exit code 128: git log -1 --format=%ct, %an ${nonExistingFilePath}`,
`Command failed with exit code 128: git log -1 --format=%ct, %an ${nonExistingFileName}`,
);
expect(await getFileLastUpdate(null)).toBeNull();
expect(await getFileLastUpdate(undefined)).toBeNull();
Expand Down
16 changes: 10 additions & 6 deletions packages/docusaurus-plugin-content-docs/src/lastUpdate.ts
Expand Up @@ -7,6 +7,7 @@

import shell from 'shelljs';
import execa from 'execa';
import path from 'path';

type FileLastUpdateData = {timestamp?: number; author?: string};

Expand Down Expand Up @@ -43,12 +44,15 @@ export async function getFileLastUpdate(
return null;
}

const {stdout} = await execa('git', [
'log',
'-1',
'--format=%ct, %an',
filePath,
]);
const fileBasename = path.basename(filePath);
const fileDirname = path.dirname(filePath);
const {stdout} = await execa(
'git',
['log', '-1', '--format=%ct, %an', fileBasename],
{
cwd: fileDirname,
},
);
return getTimestampAndAuthor(stdout);
} catch (error) {
console.error(error);
Expand Down

0 comments on commit 08f8e98

Please sign in to comment.