added some state types

This commit is contained in:
Linus Vogel 2026-08-22 15:20:15 +02:00
parent 36617fc05f
commit 47eebc7be3
7 changed files with 99 additions and 8 deletions

10
src/sls/state/command.rs Normal file
View File

@ -0,0 +1,10 @@
pub enum CommandState {
Run {
name: String,
cwd: Option<String>,
shell: Option<String>,
create: Option<String>,
unless: Option<String>,
onlyif: Option<String>,
},
}

View File

@ -1,8 +1,31 @@
pub enum FileState {
Managed,
Present,
Absent,
BlockReplace,
Symlinked
Managed {
source: Option<String>,
user: Option<String>,
group: Option<String>,
mode: Option<String>,
contents: Option<String>,
template: Option<String>,
clean: Option<bool>,
clean_mode: Option<String>,
},
Directory {
user: Option<String>,
group: Option<String>,
mode: Option<String>,
clean: Option<bool>,
clean_mode: Option<String>,
},
File {
source: Option<String>,
user: Option<String>,
group: Option<String>,
mode: Option<String>,
contents: Option<String>,
template: Option<String>,
},
Symlink {
target: String,
},
}

9
src/sls/state/group.rs Normal file
View File

@ -0,0 +1,9 @@
pub enum GroupState {
Present {
name: String,
gid: Option<String>,
},
Absent {
name: String,
},
}

View File

@ -1,10 +1,31 @@
use crate::sls::state::file::FileState;
use crate::sls::state::service::ServiceState;
use crate::sls::state::package::PackageState;
use crate::sls::state::command::CommandState;
use crate::sls::state::user::UserState;
use crate::sls::state::group::GroupState;
pub mod file;
pub mod service;
pub mod package;
pub mod command;
pub mod user;
pub mod group;
pub enum State {
pub struct State {
pub function: StateFunction,
pub dependency: Vec<StateDependency>,
}
pub enum StateFunction {
File (FileState),
Service (ServiceState),
Package (PackageState),
Command (CommandState),
User (UserState),
Group (GroupState),
}
pub enum StateDependency {
}

11
src/sls/state/package.rs Normal file
View File

@ -0,0 +1,11 @@
pub enum PackageState {
Installed {
name: String,
},
Latest {
name: String,
},
Removed {
name: String,
},
}

View File

@ -1,6 +1,10 @@
pub enum ServiceState {
Running,
Stopped,
Running {
enable: Option<bool>,
},
Stopped {
enable: Option<bool>,
},
}

13
src/sls/state/user.rs Normal file
View File

@ -0,0 +1,13 @@
pub enum UserState {
Present {
name: String,
uid: Option<String>,
gid: Option<String>,
shell: Option<String>,
home: Option<String>,
groups: Option<Vec<String>>,
},
Absent {
name: String,
},
}