Skip to content

Commit 297519c

Browse files
committed
Added backup module
1 parent 9abb69e commit 297519c

4 files changed

Lines changed: 82 additions & 39 deletions

File tree

‎backedup/__init__.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
#!/usr/bin/env python3
22

33
from .constants import Constants
4+
from .backup import Backup

‎backedup/__main__.py‎

Lines changed: 19 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,43 @@
11
#!/usr/bin/env python3
22

33
from backedup import Constants
4+
from backedup import Backup
45

56
import datetime
7+
import json
68
import logging
79
import os
8-
import shutil
9-
1010

1111
def main():
1212
logging.basicConfig(filename='backedup.log', level=logging.INFO)
13-
create_backedup_folder()
14-
if not did_backup_today():
13+
json_configs = get_config_json_file()
14+
backup = Backup(json_configs)
15+
backup.create_backedup_folder()
16+
if not backup.did_backup_today():
1517
backup_directory = create_backup_directory()
16-
create_backup(backup_directory)
18+
backup.start_backup(backup_directory)
1719
print(Constants.DONE)
1820

21+
def get_config_json_file(self):
22+
"""
23+
get_config_json_file
1924
20-
def create_backedup_folder():
21-
if os.path.isdir(Constants.DEST_FOLDER):
22-
print(Constants.FOLDER_EXIST)
23-
return True
24-
else:
25-
os.mkdir(Constants.DEST_FOLDER)
26-
27-
28-
def did_backup_today():
29-
dest_folder_list = os.listdir(Constants.DEST_FOLDER)
30-
for folder in dest_folder_list:
31-
if str(datetime.date.today()) in folder:
32-
print(Constants.OUTPUT_FOLDER_EXIST)
33-
return True
34-
else:
35-
print(Constants.STARTING_UPDATE)
36-
return False
37-
38-
39-
def create_backup(backup_directory):
40-
shutil.copytree(src=Constants.SRC_FOLDER,
41-
dst=backup_directory,
42-
ignore=_logpath)
43-
25+
- Gets the config JSON file and returns the output
26+
"""
27+
logging.info("Current directory: " + os.getcwd())
28+
logging.info("Loading JSON config file.")
29+
with open(Constants.CONFIG_LOCATION, 'r') as file:
30+
return json.load(file)
4431

4532
def create_backup_directory():
33+
"""
34+
create_backup_directory
35+
"""
4636
backup_directory = Constants.DEST_FOLDER + \
4737
Constants.NEW_UPDATE_FOLDER + str(datetime.date.today())
4838
if os.path.isdir(backup_directory):
4939
print(Constants.OUTPUT_FOLDER_EXIST)
5040
return backup_directory
5141

52-
53-
def _logpath(path, names):
54-
logging.info('Copying %s' % path)
55-
return []
56-
57-
5842
if __name__ == "__main__":
5943
main()

‎backedup/backup.py‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/usr/bin/env python3
2+
3+
from backedup import Constants
4+
5+
import datetime
6+
import logging
7+
import os
8+
import shutil
9+
10+
class Backup:
11+
12+
def __init__(self, configs):
13+
self.config = configs
14+
self.destination_folder = self.config["destFolder"]
15+
self.source_folder = self.config["srcFolder"]
16+
17+
def create_backedup_folder(self):
18+
"""
19+
create_backedup_folder
20+
21+
"""
22+
if os.path.isdir(self.destination_folder):
23+
logging.info("Destionation folder does exist. Continuing forward with backup.")
24+
return True
25+
else:
26+
logging.info("Destionation folder does not exist.")
27+
logging.info("Creating destionation folder for backup.")
28+
os.mkdir(self.destination_folder)
29+
30+
def create_source_folder(self):
31+
pass
32+
33+
def did_backup_today(self):
34+
"""
35+
did_backup_today
36+
"""
37+
dest_folder_list = os.listdir(self.destination_folder)
38+
for folder in dest_folder_list:
39+
if str(datetime.date.today()) in folder:
40+
print(Constants.OUTPUT_FOLDER_EXIST)
41+
return True
42+
else:
43+
print(Constants.STARTING_UPDATE)
44+
return False
45+
46+
def start_backup(self, backup_directory):
47+
"""
48+
start_backup
49+
"""
50+
shutil.copytree(src=Constants.SRC_FOLDER,
51+
dst=backup_directory,
52+
ignore=self._logpath)
53+
54+
def _logpath(self, path, names):
55+
logging.info('Copying %s' % path)
56+
return []
57+
58+

‎backedup/constants.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
#!/usr/bin/env python3
22

3-
43
class Constants:
54
DONE = "DONE!"
65
FOLDER_EXIST = "The Backedup folder exist!"
7-
DEST_FOLDER = "/media/passport/backedup"
8-
NEW_UPDATE_FOLDER = "/backedup_"
6+
DEST_FOLDER = "./dest"
7+
NEW_UPDATE_FOLDER = "./new_folder"
98
OUTPUT_FOLDER_EXIST = "An update has already occurred today!"
10-
SRC_FOLDER = "/home/chris"
9+
SRC_FOLDER = "./src_folder"
1110
STARTING_UPDATE = "Starting Backedup..."
11+
CONFIG_LOCATION = "./backedup.json"

0 commit comments

Comments
 (0)