Major refactor to make handling name/path manipulation easier.
Most of this is now in doom_base.py, which stores wad/map/name, exposes them as properties, and also takes care of most common tasks needed for building command lines and such.
This commit is contained in:
parent
85d3686f1c
commit
2438995093
11 changed files with 113 additions and 100 deletions
17
dcc/put.py
17
dcc/put.py
|
@ -5,22 +5,13 @@ import dcc.doom_base
|
|||
class Put(dcc.doom_base.WadMap):
|
||||
def get_parser(self, prog_name):
|
||||
parser = super().get_parser(prog_name)
|
||||
parser.add_argument("-d", "--dsda", action="store_true")
|
||||
parser.add_argument("-s", "--single", action="store_true")
|
||||
return parser
|
||||
|
||||
# TODO: accept configuration for bucket name
|
||||
def take_action(self, parsed_args):
|
||||
s3_client = boto3.client('s3')
|
||||
demo = dcc.config.DemoInPath(parsed_args.wad, parsed_args.map, parsed_args.name)
|
||||
bucket = dcc.config.DemoName(parsed_args.wad, parsed_args.map, parsed_args.name)
|
||||
if parsed_args.dsda:
|
||||
pattern = ("{}{}".format(parsed_args.wad[0:2], parsed_args.map) if not parsed_args.single else parsed_args.wad[0:4]) + "*.zip"
|
||||
zips = [x for x in dcc.config.DEMOS.joinpath(parsed_args.wad).glob(pattern)]
|
||||
if len(zips) != 1:
|
||||
raise Exception("Unable to identify exactly one suitable upload candidate (was {})".format(zips))
|
||||
demo = zips[0]
|
||||
bucket = "dsda/{}".format(demo.name)
|
||||
print("Uploading {} to bucket doom/{}.".format(demo, bucket))
|
||||
s3_client.upload_file(demo, 'yrriban', 'doom/' + bucket,
|
||||
demo = self.demo_in_path()
|
||||
bucket = self.target_bucket()
|
||||
print("Uploading {} to bucket {}.".format(demo, bucket))
|
||||
s3_client.upload_file(demo, 'yrriban', bucket,
|
||||
ExtraArgs={'ContentType': 'binary/octet-stream', 'ACL': 'public-read'})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue