fix: installation script for deb
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
ababaa3ff9
commit
660fc317ab
3 changed files with 10 additions and 123 deletions
129
README.md
129
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 <repository-url>
|
||||
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*
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue