init
This commit is contained in:
46
scripts/update-theme.ts
Normal file
46
scripts/update-theme.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env tsx
|
||||
|
||||
/**
|
||||
* Update theme from upstream repository
|
||||
* Usage: pnpm update-theme
|
||||
*/
|
||||
|
||||
import { execSync } from 'node:child_process'
|
||||
import fs from 'node:fs'
|
||||
import path from 'node:path'
|
||||
import process from 'node:process'
|
||||
|
||||
// Check and set up the upstream remote repository
|
||||
try {
|
||||
execSync('git remote get-url upstream', { stdio: 'ignore' })
|
||||
} catch {
|
||||
execSync('git remote add upstream https://github.com/the3ash/astro-chiri.git', {
|
||||
stdio: 'inherit'
|
||||
})
|
||||
}
|
||||
|
||||
// Update theme from upstream repository
|
||||
try {
|
||||
execSync('git fetch upstream', { stdio: 'inherit' })
|
||||
|
||||
const currentCommit = execSync('git rev-parse HEAD', { encoding: 'utf8' }).trim()
|
||||
execSync('git merge upstream/main --allow-unrelated-histories', { stdio: 'inherit' })
|
||||
const newCommit = execSync('git rev-parse HEAD', { encoding: 'utf8' }).trim()
|
||||
|
||||
if (currentCommit === newCommit) {
|
||||
console.log('🤗 No updates available, already up to date')
|
||||
} else {
|
||||
console.log('✅ Theme updated')
|
||||
}
|
||||
} catch (error) {
|
||||
// Check if there's a merge conflict
|
||||
const gitDirectory = execSync('git rev-parse --git-dir', { encoding: 'utf8' }).trim()
|
||||
const mergeHeadFile = path.join(gitDirectory, 'MERGE_HEAD')
|
||||
|
||||
if (fs.existsSync(mergeHeadFile)) {
|
||||
console.log('⚠️ Update fetched with merge conflicts. Please resolve manually')
|
||||
} else {
|
||||
console.error('❌ Update failed:', error)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user