Compare commits
5 Commits
815ea5bb78
...
8ed34137d9
Author | SHA1 | Date | |
---|---|---|---|
8ed34137d9 | |||
bcf39b6cc6 | |||
a72e6ea2f3 | |||
a2a8eca3b2 | |||
70b34f6025 |
|
@ -1,16 +0,0 @@
|
|||
#!/bin/sh
|
||||
set -o nounset # Fail on use of unset variable.
|
||||
set -o errexit # Exit on command failure.
|
||||
set -o pipefail # Exit on failure of any command in a pipeline.
|
||||
set -o errtrace # Trap errors in functions and subshells.
|
||||
set -o noglob # Disable filename expansion (globbing),
|
||||
# since it could otherwise happen during
|
||||
# path splitting.
|
||||
shopt -s inherit_errexit # Inherit the errexit option status in subshells.
|
||||
|
||||
set -x
|
||||
|
||||
cargo run --bin generate_definitions > ./definitions/generated.lua
|
||||
git update-index --refresh
|
||||
cargo clippy --all-targets --all -- -D warnings
|
||||
cargo fmt -- --check
|
|
@ -15,17 +15,24 @@ jobs:
|
|||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: "DEBUG"
|
||||
run: |
|
||||
sleep 10
|
||||
echo "Hello"
|
||||
echo "pre-commit-3|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}"
|
||||
echo "Hello?"
|
||||
|
||||
- uses: pre-commit/action@v3.0.1
|
||||
|
||||
- name: Setup Rust
|
||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
with:
|
||||
rustflags: ""
|
||||
|
||||
- name: Formatting
|
||||
uses: actions-rust-lang/rustfmt@v1
|
||||
|
||||
- name: Clippy
|
||||
run: cargo clippy --all-targets --all -- -D warnings
|
||||
|
||||
- name: Build
|
||||
run: cargo build --release
|
||||
|
||||
|
|
42
.pre-commit-config.yaml
Normal file
42
.pre-commit-config.yaml
Normal file
|
@ -0,0 +1,42 @@
|
|||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.6.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-yaml
|
||||
- id: check-toml
|
||||
- id: check-added-large-files
|
||||
- id: check-merge-conflict
|
||||
|
||||
- repo: https://github.com/doublify/pre-commit-rust
|
||||
rev: v1.0
|
||||
hooks:
|
||||
- id: clippy
|
||||
- id: fmt
|
||||
|
||||
- repo: https://github.com/JohnnyMorganz/StyLua
|
||||
rev: v0.20.0
|
||||
hooks:
|
||||
- id: stylua
|
||||
|
||||
- repo: https://github.com/crate-ci/typos
|
||||
rev: v1.21.0
|
||||
hooks:
|
||||
- id: typos
|
||||
args: ["--force-exclude"]
|
||||
|
||||
- repo: https://github.com/pryorda/dockerfilelint-precommit-hooks
|
||||
rev: v0.1.0
|
||||
hooks:
|
||||
- id: dockerfilelint
|
||||
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: lua-definitions
|
||||
name: Generate lua definitions
|
||||
description: This hook generates up to date lua definitions.
|
||||
entry: cargo run --bin generate_definitions
|
||||
language: system
|
||||
types: [rust]
|
||||
pass_filenames: false
|
|
@ -1,11 +1,12 @@
|
|||
# automation_rs
|
||||
|
||||
Custom home automation solution with google-home integration
|
||||
Custom home automation solution with Google Home integration and lua scripting.
|
||||
|
||||
## Development
|
||||
|
||||
Make sure to setup git hooks by running
|
||||
This repository uses [pre-commit](https://pre-commit.com) to make sure everything is ready to go when committing.
|
||||
Install the pre-commit hooks by running the following command:
|
||||
|
||||
```sh
|
||||
git config --local core.hooksPath .git-hooks/
|
||||
```bash
|
||||
pre-commit install
|
||||
```
|
||||
|
|
|
@ -181,3 +181,4 @@ function Washer.new(config) end
|
|||
--- @field event_channel EventChannel
|
||||
--- @field client WrappedAsyncClient
|
||||
|
||||
-- End of generated file
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
use std::fs::File;
|
||||
use std::io::{Result, Write};
|
||||
|
||||
use automation::config::MqttDeviceConfig;
|
||||
use automation::devices::{
|
||||
AirFilter, AirFilterConfig, AudioSetup, AudioSetupConfig, ContactSensor, ContactSensorConfig,
|
||||
|
@ -7,51 +10,64 @@ use automation::devices::{
|
|||
WakeOnLANConfig, Washer, WasherConfig,
|
||||
};
|
||||
|
||||
fn main() {
|
||||
println!("-- WARN: This file is automatically generated, do not manually edit\n");
|
||||
println!("---@meta");
|
||||
fn main() -> Result<()> {
|
||||
let mut d = File::create("./definitions/generated.lua")?;
|
||||
|
||||
println!("{}", MqttDeviceConfig::generate_lua_definition());
|
||||
writeln!(
|
||||
&mut d,
|
||||
"-- WARN: This file is automatically generated, do not manually edit\n"
|
||||
)?;
|
||||
writeln!(&mut d, "---@meta")?;
|
||||
|
||||
println!("{}", AirFilter::generate_lua_definition());
|
||||
println!("{}", AirFilterConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", MqttDeviceConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", AudioSetup::generate_lua_definition());
|
||||
println!("{}", AudioSetupConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", AirFilter::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", AirFilterConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", ContactSensor::generate_lua_definition());
|
||||
println!("{}", ContactSensorConfig::generate_lua_definition());
|
||||
println!("{}", PresenceDeviceConfig::generate_lua_definition());
|
||||
println!("{}", TriggerConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", AudioSetup::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", AudioSetupConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", DebugBridge::generate_lua_definition());
|
||||
println!("{}", DebugBridgeConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", ContactSensor::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", ContactSensorConfig::generate_lua_definition())?;
|
||||
writeln!(
|
||||
&mut d,
|
||||
"{}",
|
||||
PresenceDeviceConfig::generate_lua_definition()
|
||||
)?;
|
||||
writeln!(&mut d, "{}", TriggerConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", HueBridge::generate_lua_definition());
|
||||
println!("{}", HueBridgeConfig::generate_lua_definition());
|
||||
println!("{}", FlagIDs::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", DebugBridge::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", DebugBridgeConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", HueGroup::generate_lua_definition());
|
||||
println!("{}", HueGroupConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", HueBridge::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", HueBridgeConfig::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", FlagIDs::generate_lua_definition())?;
|
||||
|
||||
println!("{}", IkeaOutlet::generate_lua_definition());
|
||||
println!("{}", IkeaOutletConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", HueGroup::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", HueGroupConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", KasaOutlet::generate_lua_definition());
|
||||
println!("{}", KasaOutletConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", IkeaOutlet::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", IkeaOutletConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", LightSensor::generate_lua_definition());
|
||||
println!("{}", LightSensorConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", KasaOutlet::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", KasaOutletConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", Ntfy::generate_lua_definition());
|
||||
println!("{}", NtfyConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", LightSensor::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", LightSensorConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", Presence::generate_lua_definition());
|
||||
println!("{}", PresenceConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", Ntfy::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", NtfyConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", WakeOnLAN::generate_lua_definition());
|
||||
println!("{}", WakeOnLANConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", Presence::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", PresenceConfig::generate_lua_definition())?;
|
||||
|
||||
println!("{}", Washer::generate_lua_definition());
|
||||
println!("{}", WasherConfig::generate_lua_definition());
|
||||
writeln!(&mut d, "{}", WakeOnLAN::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", WakeOnLANConfig::generate_lua_definition())?;
|
||||
|
||||
writeln!(&mut d, "{}", Washer::generate_lua_definition())?;
|
||||
writeln!(&mut d, "{}", WasherConfig::generate_lua_definition())?;
|
||||
|
||||
writeln!(&mut d, "-- End of generated file")?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user