Woche is a collection of Bash scripts that assist in managing weekly tasks. It enables the creation of a new Markdown file for the current week and the addition of tasks to specific days. Woche, meaning 'week' in German. You can choose between options with the names of the days in English or German.
- Generates a new Markdown file for the current week, including headers for each day.
- Allows the addition, editing and delete of tasks to a specific day of the week or line of the file.
- Provides usage tips.
Create a new Markdown file for the current week (starting on Monday):
./woche.sh create
This command creates a file using the YYMMDD format.
Add a task to a specific day:
./woche.sh <day> "<task>"
Replace with the day of the week and with the task description. The days in German are: mon, die, mit, don, frei, sam and son, in English: mond, tue, wed, thu, fri, sat and sun.
Display the tasks of the current week:
./woche.sh show
This command prints the Markdown file with the tasks for the entire week.
Edit a task of the current week:
./woche.sh edit 9 "That task"
This command edit the line 9 of Markdown file with the tasks.
Delete a task of the current week:
./woche.sh delete 3
This command edit the line 3 of Markdown file.
Access instructions:
./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, follow these instructions:
# 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 in the variables.sh file.
- Switch to German day names by replacing week_array with woche_array in the same file.
- Alter the date format of the Markdown file by adjusting the start_day_of_week method in functions.sh.
- Use dockerized version if not in Ubuntu/Debian like system operation.
This project is licensed under the GNU License. See the LICENSE file for details.