You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
805 B
34 lines
805 B
import pkg from './package.json'
|
|
import { execSync } from 'child_process'
|
|
import vue from '@vitejs/plugin-vue'
|
|
|
|
export default {
|
|
plugins: [vue()],
|
|
define: {
|
|
APP_TITLE: JSON.stringify(pkg.name),
|
|
APP_VERSION: JSON.stringify(buildVersion()),
|
|
APP_REPOSITORY: JSON.stringify(pkg.repository),
|
|
APP_LICENSE: JSON.stringify(pkg.license),
|
|
}
|
|
}
|
|
|
|
// FUNCTIONS
|
|
//----------
|
|
|
|
function buildVersion(): string {
|
|
const version = pkg.version
|
|
if (!isGitCommand()) {
|
|
return version
|
|
}
|
|
const dirty = Number(execSync("git status -s | wc -l").toString())
|
|
return dirty > 0 ? `${version}…${dirty}` : version
|
|
}
|
|
|
|
function isGitCommand(): boolean {
|
|
try {
|
|
execSync("command -v git")
|
|
return true
|
|
} catch (e) {
|
|
return false
|
|
}
|
|
}
|