@@ -151,7 +151,7 @@ const processApp = (projectPath, dest, directoriesToExclude) => {
151151 directories . push ( child ) ;
152152 }
153153 } ) ;
154-
154+
155155 const jsonSamplesPath = path . join ( __dirname , `${ projectPath } /assets/samples` ) ;
156156 const sharedJson = JSON . parse ( fs . readFileSync ( path . join ( jsonSamplesPath , "/shared.json" ) ) ) ;
157157 const submoduleAppDest = submodule + `/${ dest } /` ;
@@ -235,6 +235,58 @@ let repositoryfyAngularDemos;
235235let repositoryfyAngularDemosLob ;
236236let repositoryfyAngularDemosCrm ;
237237
238+ const copyGitHooks = async ( cb ) => {
239+
240+ if ( process . env . AZURE_PIPELINES || process . env . TRAVIS || process . env . CI || ! fs . existsSync ( '.git' ) ) {
241+ return ;
242+ }
243+
244+ const gitHooksDir = './.git/hooks/' ;
245+ const defaultCopyHookDir = gitHooksDir + 'scripts/' ;
246+ const dirs = [
247+ gitHooksDir ,
248+ defaultCopyHookDir ,
249+ defaultCopyHookDir + 'templates' ,
250+ defaultCopyHookDir + 'templateValidators' ,
251+ defaultCopyHookDir + 'utils'
252+ ] ;
253+
254+ dirs . forEach ( ( dir ) => {
255+ if ( ! fs . existsSync ( dir ) ) {
256+ fs . mkdir ( dir , ( err ) => {
257+ if ( err ) {
258+ throw err ;
259+ }
260+ } ) ;
261+ }
262+ } ) ;
263+
264+ const defaultHookDir = './.hooks/scripts/' ;
265+
266+ fs . copyFileSync ( defaultHookDir + 'templates/default.js' ,
267+ defaultCopyHookDir + 'templates/default.js' ) ;
268+
269+ fs . copyFileSync ( defaultHookDir + 'templateValidators/default-style-validator.js' ,
270+ defaultCopyHookDir + 'templateValidators/default-style-validator.js' ) ;
271+
272+ fs . copyFileSync ( defaultHookDir + 'utils/issue-validator.js' ,
273+ defaultCopyHookDir + 'utils/issue-validator.js' ) ;
274+
275+ fs . copyFileSync ( defaultHookDir + 'utils/line-limits.js' ,
276+ defaultCopyHookDir + 'utils/line-limits.js' ) ;
277+
278+ fs . copyFileSync ( defaultHookDir + 'common.js' ,
279+ defaultCopyHookDir + 'common.js' ) ;
280+
281+ fs . copyFileSync ( defaultHookDir + 'validate.js' ,
282+ defaultCopyHookDir + 'validate.js' ) ;
283+
284+ fs . copyFileSync ( './.hooks/prepare-commit-msg' ,
285+ './.git/hooks/prepare-commit-msg' ) ;
286+
287+ return await cb ( ) ;
288+ } ;
289+
238290const cleanupAngularDemos = ( cb ) => {
239291 fsExtra . removeSync ( submodule + "/angular-demos" ) ;
240292 fsExtra . mkdirSync ( submodule + "/angular-demos" ) ;
@@ -256,3 +308,4 @@ const cleanupAngularDemosCrm = (cb) => {
256308exports . repositoryfyAngularDemos = repositoryfyAngularDemos = gulp . series ( cleanupAngularDemos , processDemosWithScss ) ;
257309exports . repositoryfyAngularDemosLob = repositoryfyAngularDemosLob = gulp . series ( cleanupAngularDemosLob , processDemosLobWithScss ) ;
258310exports . repositoryfyAngularDemosCrm = repositoryfyAngularDemosCrm = gulp . series ( cleanupAngularDemosCrm , processDemosCrmWithScss ) ;
311+ exports . copyGitHooks = copyGitHooks ;
0 commit comments