package main

import (
	"fmt"
	"os"
	"os/exec"
	"time"
)

func backUp(cmd string, c UsrConfig) {
	switch cmd {
	case "full":
		fmt.Println("Starting full server backup")
		t := time.Now()
		timeStamp := t.Format(time.RFC3339)
		fullBackupName := fmt.Sprintf("%s/ServerBackup.%s.tgz", c.Factoryman.BackupDir, timeStamp)
		fullBackup := exec.Command("tar", "-czvf", fullBackupName, c.Server.ServDir)
		fullBackup.Stdout = os.Stdout
		err := fullBackup.Run()
		if err != nil {
			fmt.Printf("Backup Failed: %s\n", err)
		}
	case "saves":
		fmt.Println("Backing up saves")
		t := time.Now()
		timeStamp := t.Format(time.RFC3339)
		savesBackupName := fmt.Sprintf("%s/SaveBackup.%s.tgz", c.Factoryman.BackupDir, timeStamp)
		saveDir := fmt.Sprintf("%s/saves", c.Server.ServDir)
		savesBackup := exec.Command("tar", "-czvf", savesBackupName, saveDir)
		savesBackup.Stdout = os.Stdout
		err := savesBackup.Run()
		if err != nil {
			fmt.Printf("Backup Failed: %s\n", err)
		}
	}
}
