diff --git a/README.md b/README.md index 6a2d64e..f853417 100644 --- a/README.md +++ b/README.md @@ -12,19 +12,19 @@ A lightweight, efficient cron-like scheduler written in Go that executes shell c ## Installation -### Prerequisites -- Go 1.24.1 or later +### Recommended: Debian Package (.deb) -### Build from Source -```bash -git clone -cd scron -go build -o scron ./ -``` +Download the latest `.deb` package from the [releases page](https://git.keks.cloud/kekskurse/scron/releases) and install: + +# Install package +sudo dpkg -i scron_X.X.X_linux_amd64.deb + + +Configuration file at `/etc/scron/config.yml` ## Configuration -Create a `config.yml` file in the same directory as the binary: +Create a `config.yml` file in the same directory as the binary (or /etc/scron if install via .deb): ```yaml jobs: @@ -60,76 +60,6 @@ jobs: - `n,m,o` - Multiple specific values - `n-m` - Range of values -## Usage - -### Basic Usage -```bash -./scron -``` - -### With Debug Logging -```bash -ZEROLOG_LEVEL=debug ./scron -``` - -### Running as a Service -```bash -# systemd service example -sudo cp scron /usr/local/bin/ -sudo cp config.yml /etc/scron/ -# Create systemd service file... -``` - -## Development - -### Testing -```bash -# Run all tests -go test ./... - -# Run specific test -go test -run ^TestConfigParsing$ ./ - -# Run tests with coverage -go test -cover ./... -``` - -### Code Quality -```bash -# Format and vet code -go fmt ./... && go vet ./... - -# Run linter (if golangci-lint is installed) -golangci-lint run -``` - -### Project Structure -``` -scron/ -├── main.go # Main application entry point -├── config.go # Configuration parsing and validation -├── config_test.go # Configuration tests -├── time.go # Time matching and cron logic -├── timer_test.go # Timer and scheduling tests -├── error.go # Custom error types -├── config.yml # Example configuration -└── README.md # This file -``` - -## Logging - -SCRON uses structured logging with different levels: - -- **Debug**: Detailed execution information, config parsing -- **Info**: Job execution start/completion -- **Warn**: Non-critical issues (empty config, etc.) -- **Error**: Execution failures, config errors -- **Fatal**: Critical errors that stop the application - -Set log level via environment variable: -```bash -export ZEROLOG_LEVEL=debug # debug, info, warn, error, fatal -``` ## Examples @@ -170,44 +100,3 @@ jobs: command: "cleanup.sh" ``` -## Troubleshooting - -### Common Issues - -**Jobs not executing:** -- Check config.yml syntax with `go test ./...` -- Verify file permissions on commands -- Check logs for parsing errors - -**High CPU usage:** -- Normal behavior - SCRON checks time every second for precision -- Consider reducing job frequency if not needed - -**Commands failing:** -- Commands run via `bash -c`, ensure bash compatibility -- Check command paths and permissions -- Review captured output in logs - -### Debug Mode -Enable debug logging to see detailed execution information: -```bash -ZEROLOG_LEVEL=debug ./scron -``` - -## Contributing - -1. Fork the repository -2. Create a feature branch (`git checkout -b feature/amazing-feature`) -3. Make your changes following the existing code style -4. Add tests for new functionality -5. Run tests and linting (`go test ./... && go fmt ./... && go vet ./...`) -6. Commit your changes (`git commit -am 'Add amazing feature'`) -7. Push to the branch (`git push origin feature/amazing-feature`) -8. Open a Pull Request - -## License - -This project is open source. Please check the repository for license details. - ---- -*Generated with Crush* diff --git a/scripts/postinstall.sh b/scripts/postinstall.sh index f961e0a..e2622ed 100755 --- a/scripts/postinstall.sh +++ b/scripts/postinstall.sh @@ -4,6 +4,7 @@ set -e # Reload systemd and enable service systemctl daemon-reload systemctl enable scron +systemctl start scron echo "SCRON installed successfully!" echo "Configuration file: /etc/scron/config.yml" diff --git a/scripts/postremove.sh b/scripts/postremove.sh index 54458ab..0a6fe5b 100755 --- a/scripts/postremove.sh +++ b/scripts/postremove.sh @@ -2,9 +2,6 @@ set -e # Remove systemd service file -if systemctl is-enabled --quiet scron; then - systemctl disable scron -fi rm -f /etc/systemd/system/scron.service systemctl daemon-reload