UNPKG

1.2 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3'use strict'
4
5require('console.table')
6
7const nowPipeline = require('..')
8const pkg = nowPipeline.getPackage()
9
10function nonAliasedDeploys (deploys, aliases) {
11 const aliasedDeploys = aliases.map(alias => alias.deploymentId)
12 return deploys.filter(deploy => {
13 return !aliasedDeploys.includes(deploy.uid)
14 })
15}
16
17Promise.all([
18 nowPipeline.deployments(pkg.name),
19 nowPipeline.aliases(pkg.name)
20]).then(([deploys, aliases]) => {
21 if (deploys.length) {
22 console.table('Deploys', deploys)
23 } else {
24 console.log('No deploys')
25 }
26
27 if (aliases.length) {
28 console.table('Aliases', aliases)
29 } else {
30 console.log('No aliases')
31 }
32
33 const needToPrune = nonAliasedDeploys(deploys, aliases)
34 if (needToPrune.length) {
35 console.table('Will prune deploys', needToPrune)
36 } else {
37 console.log('No deploys to prune')
38 }
39
40 return needToPrune.reduce((prev, deploy) => {
41 return prev.then(() => {
42 console.log(`removing deploy ${deploy.uid} ${deploy.url}`)
43 return nowPipeline.remove(deploy.uid)
44 })
45 }, Promise.resolve())
46}).then(() => {
47 console.log('Done pruning deploys')
48}).catch(err => {
49 console.error(err)
50 process.exit(-1)
51})