25 lines
825 B
TypeScript
25 lines
825 B
TypeScript
import { exec } from 'child_process'
|
|
|
|
export async function cloneBranch(link: string, path: string, branch: string) {
|
|
return new Promise((resolve, reject) => {
|
|
const args = ['--single-branch', '-b', branch, '--', link, path]
|
|
const proc = exec('git clone ' + args.join(' '))
|
|
|
|
proc.on('close', (status: number) => {
|
|
if (status == 0) {
|
|
resolve(true)
|
|
} else if (status == 128) {
|
|
reject(
|
|
`Folder already exists. 'git clone' from branch ${branch} failed with status ` +
|
|
status,
|
|
)
|
|
} else {
|
|
reject(
|
|
`'git clone' from branch ${branch} failed with status ` +
|
|
status,
|
|
)
|
|
}
|
|
})
|
|
})
|
|
}
|