Clean up code and add --dest-dir

This commit is contained in:
Elara 2020-12-06 00:08:39 -08:00
parent 52b3490e08
commit 8331e6b543
3 changed files with 10 additions and 11 deletions

View File

@ -117,10 +117,7 @@ func (config *Config) ReadFile(filePath string) {
}
// Execute action specified in config
func (config *Config) ExecuteAction(srcDir string) {
// Get user's home directory
homeDir, err := os.UserHomeDir()
if err != nil { log.Fatal().Err(err).Msg("Error getting home directory") }
func (config *Config) ExecuteAction(srcDir string, destDir string) {
// Use ConsoleWriter logger
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}).Hook(FatalHook{})
// If action is file
@ -131,7 +128,7 @@ func (config *Config) ExecuteAction(srcDir string) {
// Close source file at the end of this function
defer src.Close()
// Create file in user's Downloads directory
dst, err := os.Create(homeDir + "/Downloads/" + config.ActionData)
dst, err := os.Create(filepath.Clean(destDir) + "/" + config.ActionData)
if err != nil { log.Fatal().Err(err).Msg("Error creating file") }
// Close destination file at the end of this function
defer dst.Close()
@ -146,7 +143,7 @@ func (config *Config) ExecuteAction(srcDir string) {
// If action is dir
} else if config.ActionType == "dir" {
// Set destination directory to ~/Downloads/{dir name}
dstDir := homeDir + "/Downloads/" + config.ActionData
dstDir := filepath.Clean(destDir) + "/" + config.ActionData
// Try to create destination directory
err := os.MkdirAll(dstDir, 0755)
if err != nil { log.Fatal().Err(err).Msg("Error creating directory") }
@ -179,7 +176,7 @@ func (config *Config) ExecuteAction(srcDir string) {
// If regular file
case tar.TypeReg:
// Try to create containing folder ignoring errors
_ = os.MkdirAll(strings.TrimSuffix(targetPath, filepath.Base(targetPath)), 0755)
_ = os.MkdirAll(filepath.Dir(targetPath), 0755)
// Create file with mode contained in header at target path
dstFile, err := os.OpenFile(targetPath, os.O_CREATE|os.O_RDWR, os.FileMode(header.Mode))
if err != nil { log.Fatal().Err(err).Msg("Error creating file during unarchiving") }

View File

@ -130,7 +130,7 @@ func RecvFiles(senderAddr string) {
response, err = http.Get(serverAddr + "/index")
// If no error, set index failed to false
if err == nil { indexGetFailed = false }
// Wait 500s
// Wait 500ms
time.Sleep(500*time.Millisecond)
}
}

View File

@ -49,12 +49,14 @@ func main() {
// Create --send-to flag to send to a specific IP
sendTo := flag.String("send-to", "", "Use IP address of receiver instead of mDNS")
// Create --dest-dir flag to save to a specified folder
destDir := flag.String("dest-dir", homeDir + "/Downloads", "Destination directory for files or dirs sent over opensend")
// Create --skip-mdns to skip service registration
skipMdns := flag.Bool("skip-mdns", false, "Skip zeroconf service registration (use if mdns fails)")
// Create -t flag for type
actionType := flag.String("t", "","Type of data being sent")
// Create -d flag for data
actionData := flag.String("d", "", "Data to send")
// Create --skip-mdns to skip service registration
skipMdns := flag.Bool("skip-mdns", false, "Skip zeroconf service registration (use if mdns fails)")
// Create -s flag for sending
sendFlag := flag.Bool("s", false, "Send data")
// Create -r flag for receiving
@ -174,7 +176,7 @@ func main() {
// Notify user that action is being executed
log.Info().Msg("Executing JSON action")
// Execute JSON action using files within opensend directory
config.ExecuteAction(opensendDir)
config.ExecuteAction(opensendDir, *destDir)
} else {
flag.Usage()
log.Fatal().Msg("You must choose sender or receiver mode using -s or -r")