tauri/.scripts/ci/sync-cli-metadata.js

75 lines
1.9 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
// Copyright 2019-2024 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
/*
This script is solely intended to be run as part of the `covector version` step to
keep the `../../crates/tauri-cli/metadata-v2.json` up to date with other version bumps. Long term
Merge remote-tracking branch 'origin/dev' into next (#7067) Co-authored-by: wusyong <wusyong@users.noreply.github.com> Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de> Co-authored-by: Lucas Nogueira <lucas@tauri.studio> Co-authored-by: Simon Hyll <hyllsimon@gmail.com> Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app> Co-authored-by: Lucas Nogueira <lucas@tauri.app> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio> Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: chip <chip@chip.sh> Co-authored-by: Raphii <iam@raphii.co> Co-authored-by: Ronie Martinez <ronmarti18@gmail.com> Co-authored-by: hanaTsuk1 <101488209+hanaTsuk1@users.noreply.github.com> Co-authored-by: nathan-fall <39990940+nathan-fall@users.noreply.github.com> Co-authored-by: Akshay <nerdy@peppe.rs> Co-authored-by: KurikoMoe <kurikomoe@gmail.com> Co-authored-by: Guilherme Oenning <me@goenning.net> Co-authored-by: Pierre Cashon <biaocy91@gmail.com> Co-authored-by: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Co-authored-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com> Co-authored-by: Risto Stevcev <me@risto.codes> Co-authored-by: Soumt <rltks1305@naver.com> Co-authored-by: yutotnh <57719497+yutotnh@users.noreply.github.com> Co-authored-by: Gökçe Merdun <agmmnn@gmail.com> Co-authored-by: Nathanael Rea <Nathan@NathanaelRea.com> Co-authored-by: Usman Rajab <usman.rajab@gmail.com> Co-authored-by: Francis The Basilisk <36006338+snorkysnark@users.noreply.github.com> Co-authored-by: Lej77 <31554212+Lej77@users.noreply.github.com> Co-authored-by: Tomáš Diblík <dibla.tomas@post.cz> Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com> Co-authored-by: Pascal Sommer <Pascal-So@users.noreply.github.com> Co-authored-by: Bo <bertonzh@gmail.com> Co-authored-by: Kevin Yue <k3vinyue@gmail.com> fixed grammar and typos (#6937) Fix api.js docs pipeline with updated typedoc dependencies (#6945) closes #6887 (#6922) fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865 (#6921) fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865 fix broken symlinks in license files (#6336) fix(cli): fix cli connection timeout to dev server (fix #6045) (#6046) fix(bundler): ensure that there are no duplicate extension arguments when bundling on Windows, fixes #6103 (#6917) fix(bundler): ensure that there are no duplicate extension arguments during bundling on Windows (fix #6103) closes #5491 (#6408) fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928 (#6935) fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928 fix(updater): emit `UPTODATE` when server responds with 204, closes #6934 (#6970) fix(core): unpin all dependencies, closes #6944 (#6966) fix(bundler): Add new lang_file option in persian variant. (#6972) fix(core/ipc): access url through webview native object, closes #6889 (#6976) fix(core): remove trailing slash in http scope url, closes #5208 (#6974) fix(core): remove trailing slash in http scope url, closes #5208 fix(cli): find correct binary when `--profile` is used, closes #6954 (#6979) fix(cli): find correct binary when `--profile` is used, closes #6954 closes #6955 (#6987) closes #6955 closes #6158 (#6969) closes #6158 fix(cli): improve vs build tools detection (#6982) fix: updated appimage script to follow symlinks for /usr/lib* (fix: #6992) (#6996) fix(cli): correctly remove Cargo features (#7013) Fix typo (#7012) fix(cli): revert metadata.json field rename from #6795 (#7029) closes #6732 (#6736) fix: add missing file properties on Windows, closes #6676 (#6693) fix(cli.js): detect node-20 binary (#6667) fix version-or-publish workflow (#7031) fix(cli/devserver): inject autoreload into HTML only, closes #6997 (#7032) fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036 (#7040) fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036 fix(core): rewrite `asset` protocol streaming, closes #6375 (#6390) closes #5939 (#5960) fix(core): use `safe_block_on` (#7047) closes #6859 (#6933) closes #6955 (#6998) fix(core): populate webview_attrs from config, closes #6794 (#6797) closes #5176 (#5180) fix: sound for notifications on windows (fix #6652) (#6680) close native window's buttons, closes #2353 (#6665) fix(bundler/nsis): calculate accurate app size, closes #7056 (#7057) fix(tests): only download update when it is available (#7061) closes #6706 (#6712) fix(doc): correct the doc of `content_protected()` (#7065) closes #6472 (#6530) fix(macros): use full path to Result to avoid issues with type aliases (#7071)
2023-05-30 08:29:24 +08:00
we should look to find a more "rusty way" to import / "pin" a version value in our tauri-cli
rust binaries.
*/
const { readFileSync, writeFileSync } = require('fs')
const { resolve } = require('path')
const packageNickname = process.argv[2]
const filePath = resolve(__dirname, '../../crates/tauri-cli/metadata-v2.json')
const bump = process.argv[3]
2022-06-16 00:53:44 +08:00
let index = null
switch (bump) {
case 'major':
case 'premajor':
index = 0
break
2022-06-16 00:53:44 +08:00
case 'minor':
index = 1
break
2022-06-16 00:53:44 +08:00
case 'patch':
index = 2
break
case 'prerelease':
case 'prepatch':
index = 3
break
2022-06-16 00:53:44 +08:00
default:
throw new Error('unexpected bump ' + bump)
}
const inc = (version) => {
const v = version.split('.')
2022-09-16 01:51:42 +08:00
for (let i = 0; i < v.length; i++) {
if (i === index) {
v[i] = String(Number(v[i]) + 1)
} else if (i > index) {
v[i] = 0
}
}
if (bump === 'premajor') {
const pre = JSON.parse(
readFileSync(resolve(__dirname, '../../.changes/pre.json'), 'utf-8')
)
return `${v.join('.')}-${pre.tag}.0`
}
return v.join('.')
}
// read file into js object
const metadata = JSON.parse(readFileSync(filePath, 'utf-8'))
// set field version
let version
Merge remote-tracking branch 'origin/dev' into next (#7067) Co-authored-by: wusyong <wusyong@users.noreply.github.com> Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de> Co-authored-by: Lucas Nogueira <lucas@tauri.studio> Co-authored-by: Simon Hyll <hyllsimon@gmail.com> Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app> Co-authored-by: Lucas Nogueira <lucas@tauri.app> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio> Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: chip <chip@chip.sh> Co-authored-by: Raphii <iam@raphii.co> Co-authored-by: Ronie Martinez <ronmarti18@gmail.com> Co-authored-by: hanaTsuk1 <101488209+hanaTsuk1@users.noreply.github.com> Co-authored-by: nathan-fall <39990940+nathan-fall@users.noreply.github.com> Co-authored-by: Akshay <nerdy@peppe.rs> Co-authored-by: KurikoMoe <kurikomoe@gmail.com> Co-authored-by: Guilherme Oenning <me@goenning.net> Co-authored-by: Pierre Cashon <biaocy91@gmail.com> Co-authored-by: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Co-authored-by: Amirhossein Akhlaghpour <m9.akhlaghpoor@gmail.com> Co-authored-by: Risto Stevcev <me@risto.codes> Co-authored-by: Soumt <rltks1305@naver.com> Co-authored-by: yutotnh <57719497+yutotnh@users.noreply.github.com> Co-authored-by: Gökçe Merdun <agmmnn@gmail.com> Co-authored-by: Nathanael Rea <Nathan@NathanaelRea.com> Co-authored-by: Usman Rajab <usman.rajab@gmail.com> Co-authored-by: Francis The Basilisk <36006338+snorkysnark@users.noreply.github.com> Co-authored-by: Lej77 <31554212+Lej77@users.noreply.github.com> Co-authored-by: Tomáš Diblík <dibla.tomas@post.cz> Co-authored-by: Jonas Kruckenberg <iterpre@protonmail.com> Co-authored-by: Pascal Sommer <Pascal-So@users.noreply.github.com> Co-authored-by: Bo <bertonzh@gmail.com> Co-authored-by: Kevin Yue <k3vinyue@gmail.com> fixed grammar and typos (#6937) Fix api.js docs pipeline with updated typedoc dependencies (#6945) closes #6887 (#6922) fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865 (#6921) fix(core): Fix `WindowBuilder::on_navigation` handler never registerd, closes #6865 fix broken symlinks in license files (#6336) fix(cli): fix cli connection timeout to dev server (fix #6045) (#6046) fix(bundler): ensure that there are no duplicate extension arguments when bundling on Windows, fixes #6103 (#6917) fix(bundler): ensure that there are no duplicate extension arguments during bundling on Windows (fix #6103) closes #5491 (#6408) fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928 (#6935) fix(nsis): prefill $INSTDIR with previous install path and respect `/D` flag, closes #6928 fix(updater): emit `UPTODATE` when server responds with 204, closes #6934 (#6970) fix(core): unpin all dependencies, closes #6944 (#6966) fix(bundler): Add new lang_file option in persian variant. (#6972) fix(core/ipc): access url through webview native object, closes #6889 (#6976) fix(core): remove trailing slash in http scope url, closes #5208 (#6974) fix(core): remove trailing slash in http scope url, closes #5208 fix(cli): find correct binary when `--profile` is used, closes #6954 (#6979) fix(cli): find correct binary when `--profile` is used, closes #6954 closes #6955 (#6987) closes #6955 closes #6158 (#6969) closes #6158 fix(cli): improve vs build tools detection (#6982) fix: updated appimage script to follow symlinks for /usr/lib* (fix: #6992) (#6996) fix(cli): correctly remove Cargo features (#7013) Fix typo (#7012) fix(cli): revert metadata.json field rename from #6795 (#7029) closes #6732 (#6736) fix: add missing file properties on Windows, closes #6676 (#6693) fix(cli.js): detect node-20 binary (#6667) fix version-or-publish workflow (#7031) fix(cli/devserver): inject autoreload into HTML only, closes #6997 (#7032) fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036 (#7040) fix(bundler/nsis): write installer templates UTF16LE encoded, closes #7036 fix(core): rewrite `asset` protocol streaming, closes #6375 (#6390) closes #5939 (#5960) fix(core): use `safe_block_on` (#7047) closes #6859 (#6933) closes #6955 (#6998) fix(core): populate webview_attrs from config, closes #6794 (#6797) closes #5176 (#5180) fix: sound for notifications on windows (fix #6652) (#6680) close native window's buttons, closes #2353 (#6665) fix(bundler/nsis): calculate accurate app size, closes #7056 (#7057) fix(tests): only download update when it is available (#7061) closes #6706 (#6712) fix(doc): correct the doc of `content_protected()` (#7065) closes #6472 (#6530) fix(macros): use full path to Result to avoid issues with type aliases (#7071)
2023-05-30 08:29:24 +08:00
if (packageNickname === '@tauri-apps/cli') {
version = inc(metadata['cli.js'].version)
metadata['cli.js'].version = version
} else {
version = inc(metadata[packageNickname])
metadata[packageNickname] = version
}
writeFileSync(filePath, JSON.stringify(metadata, null, 2) + '\n')
console.log(`wrote ${version} for ${packageNickname} into metadata-v2.json`)
console.dir(metadata)