gankkank/node-gitlab-update

View on GitHub
src/utils.ts

Summary

Maintainability
A
3 hrs
Test Coverage
import * as fs from 'fs';
import { exec } from 'child_process';
import logger from './logger';

export const cloneProjects = (repos, config) => {
    repos.map(p => {
        let clone_to_path = p.namespace ? `${config.dir}/${p.namespace}/${p.name}` : `${config.dir}/${name}`;

        if (fs.existsSync(`${clone_to_path}`)) {
            exec(`cd ${clone_to_path}; git pull`, (error, stdout, stderr) => {
                logger.debug(`[update] project ${p.namespace}/${p.name}`)
                //do whatever here
                if (error !== null) {
                    console.log(`[error]`, error)
                }
            })
        } else {
            exec(`cd ${config.dir}; git clone ${p.link} ${clone_to_path}`, (error, stdout, stderr) => {
                logger.debug(`[create] project ${p.namespace}/${p.name}`)
                //do whatever here
                if (error !== null) {
                    console.log(`[error]`, error)
                }
            })
        }
    })
}