import { glob } from 'glob'; import type { DateTime } from 'luxon'; import { logger } from '../../../logger/index.ts'; import { rawExec } from '../../../util/exec/common.ts'; import type { CommitFilesConfig } from '../../../util/git/types.ts'; import type { LongCommitSha } from '../../../util/schema-utils/git.ts'; import type { PlatformScm } from '../types.ts'; let fileList: string[] | undefined; export class LocalFs implements PlatformScm { isBranchBehindBase( _branchName: string, _baseBranch: string, ): Promise { return Promise.resolve(false); } isBranchModified(_branchName: string, _baseBranch: string): Promise { return Promise.resolve(false); } isBranchConflicted(_baseBranch: string, _branch: string): Promise { return Promise.resolve(false); } branchExists(_branchName: string): Promise { return Promise.resolve(true); } getBranchCommit(_branchName: string): Promise { return Promise.resolve(null); } getBranchUpdateDate(_branchName: string): Promise { return Promise.resolve(null); } getAllBranchUpdateDates(): Promise> { return Promise.resolve({}); } deleteBranch(_branchName: string): Promise { return Promise.resolve(); } commitAndPush( _commitConfig: CommitFilesConfig, ): Promise { return Promise.resolve(null); } async getFileList(): Promise { try { // fetch file list using git const maxBuffer = 10 * 1024 * 1024; // 10 MiB in bytes const stdout = (await rawExec('git ls-files', { maxBuffer })).stdout; logger.debug('Got file list using git'); fileList = stdout.split('\n'); } catch { logger.debug('Could not get file list using git, using glob instead'); fileList ??= await glob('**', { dot: true, nodir: true, }); } return fileList; } checkoutBranch(_branchName: string): Promise { return Promise.resolve(null); } mergeAndPush(_branchName: string): Promise { return Promise.resolve(); } mergeToLocal(_branchName: string): Promise { return Promise.resolve(); } }