Woche is a tool for managing weekly tasks using Bash scripts. It creates a new Markdown file for the current week and allows you to add tasks to specific days. "Woche" means 'week' in German, and you can choose between English or German day names.
- Generates a new Markdown file for the current week with headers for each day.
- Allows adding, editing, and deleting tasks for specific days or lines.
- Lists and displays tasks from different weeks.
- Provides usage tips.
./woche.sh create
# The file 241014.md has been created
This command creates a file using the YYMMDD format.
./woche.sh <day> "<task>"
Replace <day>
with the day of the week and <task>
with the task description. Days in English: mon, tue, wed, thu, fri, sat, sun. Days in German: mont, die, mit, don, frei, sam, son.
./woche.sh mon "Do something"
# Do something was added to Monday.
./woche.sh show
./woche.sh edit 9 "That task"
# Line 9 edited.
./woche.sh delete 3
# Line 3 deleted.
./woche.sh all
./woche.sh show last
./woche.sh show 210829
./woche.sh help
The test.sh
script tests the functionality of woche.sh
, checking both correct and incorrect user inputs. This test is mandatory for pull requests to the main branch and should be included in the GitHub Actions pipeline for automated testing.
To run the tests:
./test.sh
To use the Dockerized version of Woche:
# Build the image
docker build -t woche-app .
# Run the container
docker run -it woche-app
- Change the file creation path by modifying the
path
variable invariables.sh
. - Switch to German day names by replacing
week_array
withwoche_array
invariables.sh
. - Alter the date format of the Markdown file by adjusting the
start_day_of_week
method infunctions.sh
. - Use the Dockerized version if not on an Ubuntu/Debian system.
This project is licensed under the GNU License. See the LICENSE file for details.