UNPKG

1.35 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3'use strict'
4
5const debug = require('debug')('github-post-release')
6const amIaDependency = require('am-i-a-dependency')
7const isForced = process.argv.some(a => a === '--force')
8
9if (!amIaDependency() && !isForced) {
10 // top level install (we are running `npm i` in this project)
11 debug('we are installing own dependencies')
12 process.exit(0)
13}
14
15debug('installing this module as a dependency')
16
17const path = require('path')
18const fs = require('fs')
19
20function clientPackageJsonFilename () {
21 return path.join(process.cwd(), '..', '..', 'package.json')
22}
23
24function alreadyInstalled () {
25 const filename = clientPackageJsonFilename()
26 const pkg = require(filename)
27 if (!pkg.release) {
28 return false
29 }
30 if (!pkg.release.generateNotes) {
31 return false
32 }
33 return true
34}
35
36function addPlugin () {
37 const filename = clientPackageJsonFilename()
38 const pkg = require(filename)
39 if (!pkg.release) {
40 pkg.release = {}
41 }
42 pkg.release.generateNotes = 'github-post-release'
43 const text = JSON.stringify(pkg, null, 2) + '\n'
44 fs.writeFileSync(filename, text, 'utf8')
45 console.log('✅ set generate notes plugin in', filename)
46}
47
48if (alreadyInstalled()) {
49 debug('plugin generateNotes already set')
50 process.exit(0)
51}
52
53console.log('⚠️ Installing release generateNotes plugin github-post-release')
54addPlugin()