- Add .gitignore: exclude compiled binaries, build artifacts, and Helm values files containing real secrets (authentik, prometheus) - Add all Kubernetes deployment manifests (deployment/) - Add services source code: ha-sync, device-inventory, games-console, paperclip, parts-inventory - Add Ansible orchestration: playbooks, roles, inventory, cloud-init - Add hardware specs, execution plans, scripts, HOMELAB.md - Add skills/homelab/SKILL.md + skills/install.sh to preserve Copilot skill - Remove previously-tracked inventory-cli binary from git index Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
29 lines
763 B
JavaScript
29 lines
763 B
JavaScript
const {dirname} = require('path')
|
|
|
|
const findMade = (opts, parent, path = undefined) => {
|
|
// we never want the 'made' return value to be a root directory
|
|
if (path === parent)
|
|
return Promise.resolve()
|
|
|
|
return opts.statAsync(parent).then(
|
|
st => st.isDirectory() ? path : undefined, // will fail later
|
|
er => er.code === 'ENOENT'
|
|
? findMade(opts, dirname(parent), parent)
|
|
: undefined
|
|
)
|
|
}
|
|
|
|
const findMadeSync = (opts, parent, path = undefined) => {
|
|
if (path === parent)
|
|
return undefined
|
|
|
|
try {
|
|
return opts.statSync(parent).isDirectory() ? path : undefined
|
|
} catch (er) {
|
|
return er.code === 'ENOENT'
|
|
? findMadeSync(opts, dirname(parent), parent)
|
|
: undefined
|
|
}
|
|
}
|
|
|
|
module.exports = {findMade, findMadeSync}
|