summaryrefslogtreecommitdiff
path: root/cmd/uptfs.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/uptfs.go')
-rw-r--r--cmd/uptfs.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/cmd/uptfs.go b/cmd/uptfs.go
new file mode 100644
index 0000000..1bba4c4
--- /dev/null
+++ b/cmd/uptfs.go
@@ -0,0 +1,59 @@
+package cmd
+
+import (
+ "bufio"
+ "errors"
+ "fmt"
+ "os"
+ "strings"
+ "uptfs/util/split"
+)
+
+func Run() {
+ scanner := bufio.NewScanner(os.Stdin)
+ scanner.Scan()
+ inputString := scanner.Text()
+
+ if inputString == "" {
+ err := errors.New("the input string is empty")
+ fmt.Printf("%v\n", err)
+ os.Exit(1)
+ }
+
+ additionalDelimeters := []string{",", "."}
+ tokens := strings.Split(inputString, " ")
+ tokens = formatInput(tokens, additionalDelimeters)
+
+ lowercaseFilter := NewLowercaseFilterWithExtraSteps()
+ lowercaseFilter.Greet()
+
+ var newTokens []string
+ for _, token := range tokens {
+ newTokens = append(newTokens, lowercaseFilter.Filter(token))
+ }
+
+ tokens = newTokens
+
+ uppercaseFilter := NewUppercaseFilter()
+ uppercaseFilter.Greet()
+
+ newTokens = nil
+ for _, token := range tokens {
+ newTokens = append(newTokens, uppercaseFilter.Filter(token))
+ }
+
+ result := strings.Join(newTokens, " ")
+
+ fmt.Println("")
+ fmt.Println(result)
+}
+
+func formatInput(tokenArray []string, delimeterArray []string) []string {
+ for _, delimeter := range delimeterArray {
+ for index, element := range tokenArray {
+ tokenArray = split.NewArrayWithSplit(tokenArray, index, element, delimeter)
+ }
+ }
+
+ return tokenArray
+}