@sequencemedia/music-library 1.0.5 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.husky/post-commit +4 -0
- package/build/gulp/common.mjs +141 -0
- package/build/gulp/post-commit.mjs +21 -0
- package/build/gulp/pre-commit.mjs +9 -113
- package/gulpfile.mjs +5 -3
- package/package.json +6 -5
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
exec
|
|
5
|
+
} from 'child_process'
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
readFile
|
|
9
|
+
} from 'fs/promises'
|
|
10
|
+
|
|
11
|
+
const log = debug('@sequencemedia/music-library:build:gulp:common')
|
|
12
|
+
|
|
13
|
+
export const PACKAGE_VERSION_CHANGES = /\-+\s+"version":\s+"(\d+\.\d+\.\d+)",+\s+\++\s+"version":\s+"(\d+\.\d+\.\d+)",+\s+/ /* eslint-disable-line no-useless-escape */
|
|
14
|
+
|
|
15
|
+
export const HAS_STAGED_CHANGES = /Changes to be committed/s
|
|
16
|
+
|
|
17
|
+
export const NOT_STAGED_CHANGES = /Changes not staged for commit/s
|
|
18
|
+
|
|
19
|
+
export const OPTIONS = {
|
|
20
|
+
maxBuffer: 1024 * 500
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const BRANCH = 'master'
|
|
24
|
+
|
|
25
|
+
export const trim = (v) => v.split('\n').map((v) => v.trimEnd()).join('\n').trim()
|
|
26
|
+
|
|
27
|
+
export function use (key) {
|
|
28
|
+
const log = debug(`@sequencemedia/music-library:${key}`)
|
|
29
|
+
|
|
30
|
+
return function use (v) {
|
|
31
|
+
log(trim(v))
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function getGitRemoteShowOriginHeadBranch () {
|
|
36
|
+
log('getGitRemoteShowOriginHeadBranch')
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
new Promise((resolve, reject) => {
|
|
40
|
+
const command = 'git remote show origin | awk \'/HEAD branch/ {print $NF}\''
|
|
41
|
+
|
|
42
|
+
const {
|
|
43
|
+
stdout,
|
|
44
|
+
stderr
|
|
45
|
+
} = exec(command, OPTIONS, (e, v = '') => (!e) ? resolve(trim(v)) : reject(e))
|
|
46
|
+
|
|
47
|
+
stdout.on('data', use('git-remote-show-origin-head-branch'))
|
|
48
|
+
stderr.on('data', use('git-remote-show-origin-head-branch'))
|
|
49
|
+
})
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function hasPackageVersionChanges (branch = BRANCH) {
|
|
54
|
+
log('hasPackageVersionChanges')
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
new Promise((resolve, reject) => {
|
|
58
|
+
exec(`git diff HEAD origin/${branch} package.json`, OPTIONS, (e, v) => (!e) ? resolve(PACKAGE_VERSION_CHANGES.test(v)) : reject(e))
|
|
59
|
+
})
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function notPackageVersionChanges (branch = BRANCH) {
|
|
64
|
+
log('notPackageVersionChanges')
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
new Promise((resolve, reject) => {
|
|
68
|
+
exec(`git diff HEAD origin/${branch} package.json`, OPTIONS, (e, v) => (!e) ? resolve(PACKAGE_VERSION_CHANGES.test(v) !== true) : reject(e))
|
|
69
|
+
})
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function addPackageVersionChanges () {
|
|
74
|
+
log('addPackageVersionChanges')
|
|
75
|
+
|
|
76
|
+
return (
|
|
77
|
+
new Promise((resolve, reject) => {
|
|
78
|
+
exec('git add package.json package-lock.json', OPTIONS, (e) => (!e) ? resolve() : reject(e))
|
|
79
|
+
})
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function hasStagedChanges () {
|
|
84
|
+
log('hasStagedChanges')
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
new Promise((resolve, reject) => {
|
|
88
|
+
exec('git status', OPTIONS, (e, v) => (!e) ? resolve(HAS_STAGED_CHANGES.test(v)) : reject(e))
|
|
89
|
+
})
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function notStagedChanges () {
|
|
94
|
+
log('notStagedChanges')
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
new Promise((resolve, reject) => {
|
|
98
|
+
exec('git status', OPTIONS, (e, v) => (!e) ? resolve(NOT_STAGED_CHANGES.test(v)) : reject(e))
|
|
99
|
+
})
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function notPushedChanges (branch = BRANCH) {
|
|
104
|
+
log('notPushedChanges')
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
new Promise((resolve, reject) => {
|
|
108
|
+
exec(`git log origin/${branch}..HEAD`, OPTIONS, (e, v) => (!e) ? resolve(!!v) : reject(e))
|
|
109
|
+
})
|
|
110
|
+
)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export async function getPackageVersion () {
|
|
114
|
+
log('getPackageVersion')
|
|
115
|
+
|
|
116
|
+
const {
|
|
117
|
+
version = '0.0.0'
|
|
118
|
+
} = JSON.parse(await readFile('./package.json', 'utf8'))
|
|
119
|
+
|
|
120
|
+
return version
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function patchPackageVersion () {
|
|
124
|
+
log('patchPackageVersion')
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
new Promise((resolve, reject) => {
|
|
128
|
+
exec('npm version patch -m %s -n --no-git-tag-version --no-verify', OPTIONS, (e) => (!e) ? resolve() : reject(e))
|
|
129
|
+
})
|
|
130
|
+
)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export function gitTag (a = '0.0.0', m = `v${a}`) {
|
|
134
|
+
log('gitTag')
|
|
135
|
+
|
|
136
|
+
return (
|
|
137
|
+
new Promise((resolve, reject) => {
|
|
138
|
+
exec(`git tag -a v${a} -m "${m}"`, OPTIONS, (e, v) => (!e) ? resolve(v) : reject(e))
|
|
139
|
+
})
|
|
140
|
+
)
|
|
141
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import debug from 'debug'
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
getPackageVersion,
|
|
5
|
+
gitTag
|
|
6
|
+
} from '#build/gulp/common'
|
|
7
|
+
|
|
8
|
+
const log = debug('@sequencemedia/music-library:build:gulp:post-commit')
|
|
9
|
+
const error = debug('@sequencemedia/music-library:build:gulp:post-commit:error')
|
|
10
|
+
|
|
11
|
+
log('`@sequencemedia/music-library` is awake')
|
|
12
|
+
|
|
13
|
+
export default async function postCommit () {
|
|
14
|
+
log('post-commit')
|
|
15
|
+
|
|
16
|
+
try {
|
|
17
|
+
await gitTag(await getPackageVersion())
|
|
18
|
+
} catch ({ code = 'NONE', message = 'No error message defined' }) {
|
|
19
|
+
error({ code, message })
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1,123 +1,19 @@
|
|
|
1
1
|
import debug from 'debug'
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
notStagedChanges,
|
|
5
|
+
hasStagedChanges,
|
|
6
|
+
getGitRemoteShowOriginHeadBranch,
|
|
7
|
+
notPackageVersionChanges,
|
|
8
|
+
patchPackageVersion,
|
|
9
|
+
addPackageVersionChanges
|
|
10
|
+
} from '#build/gulp/common'
|
|
6
11
|
|
|
7
12
|
const log = debug('@sequencemedia/music-library:build:gulp:pre-commit')
|
|
13
|
+
const error = debug('@sequencemedia/music-library:build:gulp:pre-commit:error')
|
|
8
14
|
|
|
9
15
|
log('`@sequencemedia/music-library` is awake')
|
|
10
16
|
|
|
11
|
-
const PACKAGE_VERSION_CHANGES = /\-+\s+"version":\s+"(\d+\.\d+\.\d+)",+\s+\++\s+"version":\s+"(\d+\.\d+\.\d+)",+\s+/ /* eslint-disable-line no-useless-escape */
|
|
12
|
-
|
|
13
|
-
const HAS_STAGED_CHANGES = /Changes to be committed/s
|
|
14
|
-
|
|
15
|
-
const NOT_STAGED_CHANGES = /Changes not staged for commit/s
|
|
16
|
-
|
|
17
|
-
const OPTIONS = {
|
|
18
|
-
maxBuffer: 1024 * 500
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const BRANCH = 'master'
|
|
22
|
-
|
|
23
|
-
const trim = (v) => v.split('\n').map((v) => v.trimEnd()).join('\n').trim()
|
|
24
|
-
|
|
25
|
-
function use (key) {
|
|
26
|
-
const log = debug(`@modernpoacher/deps:${key}`)
|
|
27
|
-
|
|
28
|
-
return function use (v) {
|
|
29
|
-
log(trim(v))
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function getGitRemoteShowOriginHeadBranch () {
|
|
34
|
-
log('getGitRemoteShowOriginHeadBranch')
|
|
35
|
-
|
|
36
|
-
return (
|
|
37
|
-
new Promise((resolve, reject) => {
|
|
38
|
-
const command = 'git remote show origin | awk \'/HEAD branch/ {print $NF}\''
|
|
39
|
-
|
|
40
|
-
const {
|
|
41
|
-
stdout,
|
|
42
|
-
stderr
|
|
43
|
-
} = exec(command, OPTIONS, (e, v = '') => (!e) ? resolve(trim(v)) : reject(e))
|
|
44
|
-
|
|
45
|
-
stdout.on('data', use('git-remote-show-origin-head-branch'))
|
|
46
|
-
stderr.on('data', use('git-remote-show-origin-head-branch'))
|
|
47
|
-
})
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export function hasPackageVersionChanges (branch = BRANCH) {
|
|
52
|
-
log('hasPackageVersionChanges')
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
new Promise((resolve, reject) => {
|
|
56
|
-
exec(`git diff HEAD origin/${branch} package.json`, OPTIONS, (e, v) => (!e) ? resolve(PACKAGE_VERSION_CHANGES.test(v)) : reject(e))
|
|
57
|
-
})
|
|
58
|
-
)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function notPackageVersionChanges (branch = BRANCH) {
|
|
62
|
-
log('notPackageVersionChanges')
|
|
63
|
-
|
|
64
|
-
return (
|
|
65
|
-
new Promise((resolve, reject) => {
|
|
66
|
-
exec(`git diff HEAD origin/${branch} package.json`, OPTIONS, (e, v) => (!e) ? resolve(PACKAGE_VERSION_CHANGES.test(v) !== true) : reject(e))
|
|
67
|
-
})
|
|
68
|
-
)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export function hasStagedChanges () {
|
|
72
|
-
log('hasStagedChanges')
|
|
73
|
-
|
|
74
|
-
return (
|
|
75
|
-
new Promise((resolve, reject) => {
|
|
76
|
-
exec('git status', OPTIONS, (e, v) => (!e) ? resolve(HAS_STAGED_CHANGES.test(v)) : reject(e))
|
|
77
|
-
})
|
|
78
|
-
)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export function notStagedChanges () {
|
|
82
|
-
log('notStagedChanges')
|
|
83
|
-
|
|
84
|
-
return (
|
|
85
|
-
new Promise((resolve, reject) => {
|
|
86
|
-
exec('git status', OPTIONS, (e, v) => (!e) ? resolve(NOT_STAGED_CHANGES.test(v)) : reject(e))
|
|
87
|
-
})
|
|
88
|
-
)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export function notPushedChanges (branch = BRANCH) {
|
|
92
|
-
log('notPushedChanges')
|
|
93
|
-
|
|
94
|
-
return (
|
|
95
|
-
new Promise((resolve, reject) => {
|
|
96
|
-
exec(`git log origin/${branch}..HEAD`, OPTIONS, (e, v) => (!e) ? resolve(!!v) : reject(e))
|
|
97
|
-
})
|
|
98
|
-
)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export function patchPackageVersion () {
|
|
102
|
-
log('patchPackageVersion')
|
|
103
|
-
|
|
104
|
-
return (
|
|
105
|
-
new Promise((resolve, reject) => {
|
|
106
|
-
exec('npm version patch -m %s -n --no-git-tag-version --no-verify', OPTIONS, (e) => (!e) ? resolve() : reject(e))
|
|
107
|
-
})
|
|
108
|
-
)
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export function addPackageVersionChanges () {
|
|
112
|
-
log('addPackageVersionChanges')
|
|
113
|
-
|
|
114
|
-
return (
|
|
115
|
-
new Promise((resolve, reject) => {
|
|
116
|
-
exec('git add package.json package-lock.json', OPTIONS, (e) => (!e) ? resolve() : reject(e))
|
|
117
|
-
})
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
|
|
121
17
|
export default async function preCommit () {
|
|
122
18
|
log('pre-commit')
|
|
123
19
|
|
|
@@ -139,6 +35,6 @@ export default async function preCommit () {
|
|
|
139
35
|
}
|
|
140
36
|
}
|
|
141
37
|
} catch ({ code = 'NONE', message = 'No error message defined' }) {
|
|
142
|
-
|
|
38
|
+
error({ code, message })
|
|
143
39
|
}
|
|
144
40
|
}
|
package/gulpfile.mjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import gulp from 'gulp'
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import {
|
|
4
|
+
postCommit
|
|
5
|
+
} from '@sequencemedia/hooks'
|
|
4
6
|
|
|
5
7
|
gulp
|
|
6
|
-
.task('
|
|
8
|
+
.task('post-commit', postCommit)
|
|
7
9
|
|
|
8
10
|
gulp
|
|
9
|
-
.task('default', gulp.series('
|
|
11
|
+
.task('default', gulp.series('post-commit'))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sequencemedia/music-library",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "Watch Apple Music Library XML and parse to JSON, JS, ES, or M3U",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"music",
|
|
@@ -37,18 +37,18 @@
|
|
|
37
37
|
"start": "cross-env DEBUG=@sequencemedia/music-library,@sequencemedia/music-library:*,@sequencemedia/music-library-parser,@sequencemedia/music-library-parser:* NODE_ENV=production node .",
|
|
38
38
|
"dev": "cross-env DEBUG=@sequencemedia/music-library,@sequencemedia/music-library:*,@sequencemedia/music-library-parser,@sequencemedia/music-library-parser:* NODE_ENV=development node .",
|
|
39
39
|
"gulp": "gulp --color",
|
|
40
|
-
"pre-commit": "npm run lint
|
|
40
|
+
"pre-commit": "npm run lint",
|
|
41
|
+
"post-commit": "cross-env DEBUG=@sequencemedia/hooks,@sequencemedia/hooks:* npm run gulp -- post-commit",
|
|
41
42
|
"prepare": "husky install"
|
|
42
43
|
},
|
|
43
44
|
"dependencies": {
|
|
44
|
-
"@sequencemedia/music-library-parser": "1.0.
|
|
45
|
+
"@sequencemedia/music-library-parser": "1.0.6",
|
|
45
46
|
"chokidar": "^3.5.2",
|
|
46
47
|
"commander": "^8.3.0",
|
|
47
48
|
"cross-env": "^7.0.3",
|
|
48
49
|
"debug": "^4.3.3",
|
|
49
50
|
"dotenv": "^10.0.0",
|
|
50
|
-
"ps-list": "^8.0.0"
|
|
51
|
-
"supports-color": "^9.2.1"
|
|
51
|
+
"ps-list": "^8.0.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@babel/cli": "^7.16.0",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"@babel/plugin-proposal-export-default-from": "^7.16.5",
|
|
58
58
|
"@babel/plugin-proposal-export-namespace-from": "^7.16.5",
|
|
59
59
|
"@babel/preset-env": "^7.16.5",
|
|
60
|
+
"@sequencemedia/hooks": "^1.0.0",
|
|
60
61
|
"core-js": "^3.20.1",
|
|
61
62
|
"eslint": "7.32.0",
|
|
62
63
|
"eslint-config-standard": "^16.0.3",
|