## ascii-art-justify ### Objectives You must follow the same [instructions](../README.md) as in the first subject but the alignment can be changed. ```console We will explain! ``` To change the alignment of the output it must be possible to use a **flag** `--align=`, in which `type` can be : - center - left - right - justify - You must adapt your representation to the terminal size. If you reduce the terminal window the graphical representation should be adapted to the terminal size. - Only text that fits the terminal size will be tested. - The flag must have exactly the same format as above, any other formats must return the following usage message: ```console Usage: go run . [STRING] [BANNER] [OPTION] Example: go run . something standard --align=right ``` ### Instructions - Your project must be written in **Go**. - The code must respect the [**good practices**](../../good-practices/README.md). - It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test). ### Usage Assume the bars in the display below are the terminal borders: ```console |$ go run . "hello" standard --align=center | | _ _ _ | | | | | | | | | | | |__ ___ | | | | ___ | | | _ \ / _ \ | | | | / _ \ | | | | | | | __/ | | | | | (_) | | | |_| |_| \___| |_| |_| \___/ | | | | | |$ go run . "Hello There" standard --align=left | | _ _ _ _ _______ _ | || | | | | | | | |__ __| | | | || |__| | ___ | | | | ___ | | | |__ ___ _ __ ___ | || __ | / _ \ | | | | / _ \ | | | _ \ / _ \ | '__| / _ \ | || | | | | __/ | | | | | (_) | | | | | | | | __/ | | | __/ | ||_| |_| \___| |_| |_| \___/ |_| |_| |_| \___| |_| \___| | | | | | |$ go run . "hello" shadow --align=right | | | | _| _| _| | | _|_|_| _|_| _| _| _|_| | | _| _| _|_|_|_| _| _| _| _| | | _| _| _| _| _| _| _| | | _| _| _|_|_| _| _| _|_| | | | | | |$ go run . "how are you" shadow --align=justify | | | |_| | |_|_|_| _|_| _| _| _| _|_|_| _| _|_| _|_| _| _| _|_| _| _| | |_| _| _| _| _| _| _| _| _| _|_| _|_|_|_| _| _| _| _| _| _| | |_| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| _| | |_| _| _|_| _| _| _|_|_| _| _|_|_| _|_|_| _|_| _|_|_| | | _| | | _|_| | |$ | ``` ### Allowed packages - Only the [standard Go](https://golang.org/pkg/) packages are allowed. This project will help you learn about : - The Go file system(**fs**) API - Data manipulation - Terminal display