Compare commits
4 Commits
8ed34137d9
...
815ea5bb78
Author | SHA1 | Date | |
---|---|---|---|
815ea5bb78 | |||
105a58cbb8 | |||
cebdac2fe0 | |||
5b96cca5c9 |
16
.git-hooks/pre-commit
Executable file
16
.git-hooks/pre-commit
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/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,24 +15,17 @@ jobs:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
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
|
- name: Setup Rust
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||||
with:
|
with:
|
||||||
rustflags: ""
|
rustflags: ""
|
||||||
|
|
||||||
|
- name: Formatting
|
||||||
|
uses: actions-rust-lang/rustfmt@v1
|
||||||
|
|
||||||
|
- name: Clippy
|
||||||
|
run: cargo clippy --all-targets --all -- -D warnings
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cargo build --release
|
run: cargo build --release
|
||||||
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
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,12 +1,11 @@
|
||||||
# automation_rs
|
# automation_rs
|
||||||
|
|
||||||
Custom home automation solution with Google Home integration and lua scripting.
|
Custom home automation solution with google-home integration
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
This repository uses [pre-commit](https://pre-commit.com) to make sure everything is ready to go when committing.
|
Make sure to setup git hooks by running
|
||||||
Install the pre-commit hooks by running the following command:
|
|
||||||
|
|
||||||
```bash
|
```sh
|
||||||
pre-commit install
|
git config --local core.hooksPath .git-hooks/
|
||||||
```
|
```
|
||||||
|
|
|
@ -181,4 +181,3 @@ function Washer.new(config) end
|
||||||
--- @field event_channel EventChannel
|
--- @field event_channel EventChannel
|
||||||
--- @field client WrappedAsyncClient
|
--- @field client WrappedAsyncClient
|
||||||
|
|
||||||
-- End of generated file
|
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
use std::fs::File;
|
|
||||||
use std::io::{Result, Write};
|
|
||||||
|
|
||||||
use automation::config::MqttDeviceConfig;
|
use automation::config::MqttDeviceConfig;
|
||||||
use automation::devices::{
|
use automation::devices::{
|
||||||
AirFilter, AirFilterConfig, AudioSetup, AudioSetupConfig, ContactSensor, ContactSensorConfig,
|
AirFilter, AirFilterConfig, AudioSetup, AudioSetupConfig, ContactSensor, ContactSensorConfig,
|
||||||
|
@ -10,64 +7,51 @@ use automation::devices::{
|
||||||
WakeOnLANConfig, Washer, WasherConfig,
|
WakeOnLANConfig, Washer, WasherConfig,
|
||||||
};
|
};
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() {
|
||||||
let mut d = File::create("./definitions/generated.lua")?;
|
println!("-- WARN: This file is automatically generated, do not manually edit\n");
|
||||||
|
println!("---@meta");
|
||||||
|
|
||||||
writeln!(
|
println!("{}", MqttDeviceConfig::generate_lua_definition());
|
||||||
&mut d,
|
|
||||||
"-- WARN: This file is automatically generated, do not manually edit\n"
|
|
||||||
)?;
|
|
||||||
writeln!(&mut d, "---@meta")?;
|
|
||||||
|
|
||||||
writeln!(&mut d, "{}", MqttDeviceConfig::generate_lua_definition())?;
|
println!("{}", AirFilter::generate_lua_definition());
|
||||||
|
println!("{}", AirFilterConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", AirFilter::generate_lua_definition())?;
|
println!("{}", AudioSetup::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", AirFilterConfig::generate_lua_definition())?;
|
println!("{}", AudioSetupConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", AudioSetup::generate_lua_definition())?;
|
println!("{}", ContactSensor::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", AudioSetupConfig::generate_lua_definition())?;
|
println!("{}", ContactSensorConfig::generate_lua_definition());
|
||||||
|
println!("{}", PresenceDeviceConfig::generate_lua_definition());
|
||||||
|
println!("{}", TriggerConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", ContactSensor::generate_lua_definition())?;
|
println!("{}", DebugBridge::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", ContactSensorConfig::generate_lua_definition())?;
|
println!("{}", DebugBridgeConfig::generate_lua_definition());
|
||||||
writeln!(
|
|
||||||
&mut d,
|
|
||||||
"{}",
|
|
||||||
PresenceDeviceConfig::generate_lua_definition()
|
|
||||||
)?;
|
|
||||||
writeln!(&mut d, "{}", TriggerConfig::generate_lua_definition())?;
|
|
||||||
|
|
||||||
writeln!(&mut d, "{}", DebugBridge::generate_lua_definition())?;
|
println!("{}", HueBridge::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", DebugBridgeConfig::generate_lua_definition())?;
|
println!("{}", HueBridgeConfig::generate_lua_definition());
|
||||||
|
println!("{}", FlagIDs::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", HueBridge::generate_lua_definition())?;
|
println!("{}", HueGroup::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", HueBridgeConfig::generate_lua_definition())?;
|
println!("{}", HueGroupConfig::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", FlagIDs::generate_lua_definition())?;
|
|
||||||
|
|
||||||
writeln!(&mut d, "{}", HueGroup::generate_lua_definition())?;
|
println!("{}", IkeaOutlet::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", HueGroupConfig::generate_lua_definition())?;
|
println!("{}", IkeaOutletConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", IkeaOutlet::generate_lua_definition())?;
|
println!("{}", KasaOutlet::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", IkeaOutletConfig::generate_lua_definition())?;
|
println!("{}", KasaOutletConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", KasaOutlet::generate_lua_definition())?;
|
println!("{}", LightSensor::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", KasaOutletConfig::generate_lua_definition())?;
|
println!("{}", LightSensorConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", LightSensor::generate_lua_definition())?;
|
println!("{}", Ntfy::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", LightSensorConfig::generate_lua_definition())?;
|
println!("{}", NtfyConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", Ntfy::generate_lua_definition())?;
|
println!("{}", Presence::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", NtfyConfig::generate_lua_definition())?;
|
println!("{}", PresenceConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", Presence::generate_lua_definition())?;
|
println!("{}", WakeOnLAN::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", PresenceConfig::generate_lua_definition())?;
|
println!("{}", WakeOnLANConfig::generate_lua_definition());
|
||||||
|
|
||||||
writeln!(&mut d, "{}", WakeOnLAN::generate_lua_definition())?;
|
println!("{}", Washer::generate_lua_definition());
|
||||||
writeln!(&mut d, "{}", WakeOnLANConfig::generate_lua_definition())?;
|
println!("{}", WasherConfig::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