https://github.com/0jonjo/woche
Woche is a program designed to help manage weekly tasks in a Markdown file. It allows you to create a file to the current week and add tasks to specific days. The project is developed using TDD and CI/CD.
https://github.com/0jonjo/woche
cicd schedule script shell-script task task-manager tdd to-do-list
Last synced: 4 months ago
JSON representation
Woche is a program designed to help manage weekly tasks in a Markdown file. It allows you to create a file to the current week and add tasks to specific days. The project is developed using TDD and CI/CD.
- Host: GitHub
- URL: https://github.com/0jonjo/woche
- Owner: 0jonjo
- License: gpl-3.0
- Created: 2024-04-20T01:00:06.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-07T21:44:50.000Z (11 months ago)
- Last Synced: 2025-08-07T23:32:57.648Z (11 months ago)
- Topics: cicd, schedule, script, shell-script, task, task-manager, tdd, to-do-list
- Language: Shell
- Homepage:
- Size: 72.3 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Woche - v1.5.0
Woche is a command-line tool for managing weekly tasks using Bash scripts. It helps you create and organize tasks in Markdown files, with support for English and German day names.
## Features
- Create weekly Markdown files.
- Add, edit, delete, and mark tasks as complete.
- View tasks by week, grouped by day with line numbers.
- Search for tasks across all weeks.
- Open weekly files in your preferred editor.
- Configure language preference (English or German).
- Automatic language detection for displaying existing files.
## Usage
### Getting Started
```bash
./woche.sh create
# Creates a new Markdown file for the current week (e.g., 241014.md)
```
### Adding Tasks
```bash
./woche.sh "" # Add task to a specific day (e.g., mon, tue, mont, die)
./woche.sh today "" # Add task to the current day
```
### Viewing Tasks
```bash
./woche.sh show # Display tasks for the current week
./woche.sh show last # Display tasks for last week
./woche.sh show # Display tasks for a specific week (e.g., 210829)
./woche.sh all # List all weekly Markdown files
```
### Managing Tasks
```bash
./woche.sh edit "" # Edit a task by line number
./woche.sh delete # Delete a task by line number (requires confirmation)
./woche.sh done # Mark a task as complete
```
### Searching Tasks
```bash
./woche.sh search "" # Search for a keyword in all weekly files
```
### Configuration
```bash
./woche.sh config # Show current configuration
./woche.sh config language en # Set language to English
./woche.sh config language de # Set language to German
```
**Note:** Language setting applies to new files created after the change. Existing files will continue to be displayed correctly regardless of the language setting, thanks to automatic language detection.
**Day commands:**
- English: `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`
- German: `mont`, `die`, `mit`, `don`, `fre`, `sam`, `son`
### Other Commands
```bash
./woche.sh open # Open the current week's file in $EDITOR
./woche.sh help # Display all commands and usage
```
## Testing
To run the test suite:
```bash
./test.sh
```
## Docker
To use the Dockerized version:
```bash
docker build -t woche-app . # Build the image
docker run -it woche-app # Run the container
```
## Configuration
Woche stores configuration in `~/.woche/config`. You can manage settings using the `config` command:
```bash
# View current configuration
./woche.sh config
# Change language (applies to new files)
./woche.sh config language en # English
./woche.sh config language de # German
```
### Manual Configuration
You can also edit `~/.woche/config` directly:
```bash
# Language for day names: en (English) or de (German)
WOCHE_LANGUAGE="en"
```
### Advanced Customization
- Change file path: Modify `path_to_files` in `variables.sh`.
- Adjust date format: Modify date format strings in `functions.sh`.
## License
This project is licensed under the GNU License. See the [LICENSE](LICENSE) file for details.