Initial Commit

This commit is contained in:
Donnie 2021-01-06 17:45:43 -06:00
commit b05b6b7183
3 changed files with 64 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
test.go

17
README.md Normal file
View File

@ -0,0 +1,17 @@
# Digby: The multi-compression application.
This is an application that allows you to compress to multiple compression systems all in one application.
# Building:
run `go build main.go` and you're done!
# Usage:
Run the executable and it'll ask you what file you are wanting to compress and where you'd like the output file to be.
# Supported Compression Systems:
- gzip
- zlib
# TODO:
- [ ] Have command line arguments
- [ ] Support things such a `*` for selecting multiple files
- [ ] Support compressing a folder

46
main.go Normal file
View File

@ -0,0 +1,46 @@
/*
Digby: A multi-file copmressor
*/
package main
import (
"bufio"
"compress/gzip"
"compress/zlib"
"fmt"
"io/ioutil"
"os"
)
func main() {
// Asks user what file to compress and stores it as `file`
fmt.Printf("What file would you like to copmress: ")
var file string
fmt.Scanln(&file)
// Asks user what dir to save the file.
fmt.Printf("\n\nWhat directory would you like to save your file: ")
var path string
fmt.Scanln(&path)
fmt.Printf("\n\nWhat compression system: ")
var comp string
fmt.Scanln(&comp)
// Compression shit
f, _ := os.Open(*&path + *&file)
read := bufio.NewReader(f)
data, _ := ioutil.ReadAll(read)
if *&comp == "gzip" {
f, _ = os.Create(*&path + *&file + ".gz")
w := gzip.NewWriter(f)
w.Write(data)
w.Close()
} else if *&comp == "zlib" {
f, _ = os.Create(*&path + *&file + ".zlib")
w := zlib.NewWriter(f)
w.Write(data)
w.Close()
}
}