Skip to main content

DeployState

Struct DeployState 

Source
pub struct DeployState { /* private fields */ }

Implementations§

Source§

impl DeployState

Source

pub fn new(state_dir: &Path) -> Self

Source

pub fn lock(&mut self) -> Result<()>

Acquire an exclusive file lock without loading existing state.

Source

pub fn load(state_dir: &Path) -> Result<Self>

Source

pub fn load_locked(state_dir: &Path) -> Result<Self>

Load state with an exclusive file lock to prevent concurrent access. The lock is held until the DeployState is dropped.

Source

pub fn save(&self) -> Result<()>

Source

pub fn record(&mut self, entry: DeployEntry)

Source

pub fn entries(&self) -> &[DeployEntry]

Source

pub fn remove_targets(&mut self, targets: &[PathBuf])

Source

pub fn update_entry_hash(&mut self, index: usize, new_hash: String)

Source

pub fn check_entry_status(&self, entry: &DeployEntry) -> FileStatus

Source

pub fn originals_dir(&self) -> PathBuf

Source

pub fn store_original(&self, content_hash: &str, content: &[u8]) -> Result<()>

Source

pub fn load_original(&self, content_hash: &str) -> Result<Vec<u8>>

Source

pub fn migrate_storage(state_dir: &Path) -> Result<()>

Source

pub fn restore(&mut self, package_filter: Option<&str>) -> Result<usize>

Restore files to their pre-dotm state. Files with original_hash get their original content written back with original metadata. Files without original_hash (dotm created them) get removed. Returns the count of restored files.

Source

pub fn undeploy_package( &mut self, package: &str, packages: Option<&HashMap<String, PackageConfig>>, cwd: &Path, ) -> Result<usize>

Remove managed files for a single package and save updated state.

cwd is the working directory for hook execution. Note: deploy hooks run from the package’s target directory, but undeploy hooks run from whatever cwd the caller provides (typically the dotfiles source dir), since the target directory may be partially torn down during undeploy.

Source

pub fn undeploy( &self, packages: Option<&HashMap<String, PackageConfig>>, cwd: &Path, ) -> Result<usize>

Remove all managed files and return a count of removed files.

cwd is the working directory for hook execution (see undeploy_package for details on the asymmetry with deploy hooks).

Trait Implementations§

Source§

impl Debug for DeployState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DeployState

Source§

fn default() -> DeployState

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for DeployState

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for DeployState

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V