Comments (4)
Thanks for spotting this. This was actually a bug in the documentation. To clear the state of run_onchange_
scripts you have to run:
$ chezmoi state delete-bucket --bucket=entryState
#3423 updates the documentation.
from chezmoi.
Thank you for the quick response. This is by far the best project I've discovered in a while.
from chezmoi.
Is it somehow possible to call
chezmoi state delete-bucket --bucket=entryState
from inside a
run_
script?
No. chezmoi stores its persistent state in a database that is locked while chezmoi is running. This is to ensure, as far as possible, that run_once_
scripts are run exactly once. Imagine having run_once_a
and run_once_b
, running chezmoi apply
, and then interrupting chezmoi after run_once_a
has finished but before run_once_b
has finished. The use of the database means that chezmoi will record that run_once_a
has been run the next time you run chezmoi apply
. Due to limitations of the database used (BoltDB), only one writer is allowed at a time, so scripts cannot modify the database while chezmoi is running.
from chezmoi.
Is it somehow possible to call
chezmoi state delete-bucket --bucket=entryState
from inside a run_
script?
If I do so I get the following error:
chezmoi: timeout obtaining persistent state lock, is another instance of chezmoi running?
My use case is the following: I have two scripts: run_onchange_1
and run_once_2
. When I boostrap a new machine, both scipts are run in alphabetical order. In the event of a failure during the execution of the first script, which may occur due to the need for a system reboot, it remains important that both scripts complete their execution. Instead of abruptly terminating the first script with an exit 1
command, which would prevent the second script from running, I have implemented error handling to gracefully capture the error and allow the execution to continue. Consequently, both scripts are now marked as completed.
After a system reboot, I'd like to run chezmoi apply
and only the first scipt is run again. So I somehow must clear the run-state of the first script, ideally from inside the first script once the error occurs.
from chezmoi.
Related Issues (20)
- tests hang when umask is 027
- Chezmoi by default pipes to `less` pager HOT 2
- `scriptTempDir` configuration variable is ignored for `modify_` scripts HOT 5
- Integrate 1Password SDKs to remove dependency on CLI HOT 2
- Support .bz2 for external archives HOT 2
- Of autoCommit and branches HOT 2
- Is there a way to avoid being prompted for password manager password on every operation? HOT 6
- hooks.read-source-state.pre cannot find script HOT 10
- `chezmoi apply` overwrites any files that were placed by chezmoi, no matter the source HOT 2
- One-line binary install handle ARM(v7) HOT 2
- Use 1Password for secret with GitHub code spaces HOT 2
- chezmoi in GitHub codespaces 1/2 works HOT 3
- chezmoi edit with neovim hangs after making edits HOT 2
- Use `.chezmoiignore` to ignore scripts in `.chezmoiscripts`
- Re-add an "executable_" prefix file on Windows will lose the prefix HOT 4
- `gitHub.refreshPeriod` not work
- Machine UUID variable HOT 4
- Support for custom url request headers in .chezmoiexternal HOT 3
- msys2 not detected, bash scripts will run with windows shell HOT 2
- Customize the path for a single file HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chezmoi.