mirror of
https://github.com/iluvcapra/mfbatch.git
synced 2025-12-31 17:00:50 +00:00
Fixed setinc command, renamed it, implemented set1
This commit is contained in:
@@ -33,11 +33,13 @@ class CommandEnv:
|
|||||||
metadatums: Dict[str, str]
|
metadatums: Dict[str, str]
|
||||||
incr: Dict[str, str]
|
incr: Dict[str, str]
|
||||||
patterns: Dict[str, Tuple[str, str, str]]
|
patterns: Dict[str, Tuple[str, str, str]]
|
||||||
|
oncse: Dict[str, str]
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.metadatums = dict()
|
self.metadatums = dict()
|
||||||
self.incr = dict()
|
self.incr = dict()
|
||||||
self.patterns = dict()
|
self.patterns = dict()
|
||||||
|
self.onces = dict()
|
||||||
|
|
||||||
def unset_key(self, k):
|
def unset_key(self, k):
|
||||||
del self.metadatums[k]
|
del self.metadatums[k]
|
||||||
@@ -54,6 +56,21 @@ class CommandEnv:
|
|||||||
from_value = self.metadatums[from_key]
|
from_value = self.metadatums[from_key]
|
||||||
self.metadatums[to_key] = re.sub(pattern, replacement, from_value)
|
self.metadatums[to_key] = re.sub(pattern, replacement, from_value)
|
||||||
|
|
||||||
|
def set_once(self, key, value):
|
||||||
|
self.onces[key] = self.metadatums.get(key, None)
|
||||||
|
self.metadatums[key] = value
|
||||||
|
|
||||||
|
def revert_onces(self):
|
||||||
|
keys = list(self.onces)
|
||||||
|
for key in keys:
|
||||||
|
if self.onces[key] == None:
|
||||||
|
del self.metadatums[key]
|
||||||
|
else:
|
||||||
|
self.metadatums[key] = self.onces[key]
|
||||||
|
|
||||||
|
del self.onces[key]
|
||||||
|
|
||||||
|
|
||||||
def increment_all(self):
|
def increment_all(self):
|
||||||
for k in self.incr.keys():
|
for k in self.incr.keys():
|
||||||
v = int(self.metadatums[k])
|
v = int(self.metadatums[k])
|
||||||
@@ -147,6 +164,7 @@ they appear in the batchfile.
|
|||||||
sys.stdout.write("Complete!")
|
sys.stdout.write("Complete!")
|
||||||
|
|
||||||
self.env.increment_all()
|
self.env.increment_all()
|
||||||
|
self.env.revert_onces()
|
||||||
|
|
||||||
elif val.startswith(self.COMMAND_LEADER):
|
elif val.startswith(self.COMMAND_LEADER):
|
||||||
self._handle_command(val.lstrip(self.COMMAND_LEADER),
|
self._handle_command(val.lstrip(self.COMMAND_LEADER),
|
||||||
@@ -171,6 +189,16 @@ they appear in the batchfile.
|
|||||||
value = args[1]
|
value = args[1]
|
||||||
self.env.metadatums[key] = value
|
self.env.metadatums[key] = value
|
||||||
|
|
||||||
|
def set1(self, args):
|
||||||
|
"""
|
||||||
|
set1 KEY VALUE
|
||||||
|
KEY is set to VALUE for the next file only. After the next file is
|
||||||
|
written the value of KEY reverts to its previous value
|
||||||
|
"""
|
||||||
|
key = args[0]
|
||||||
|
value = args[1]
|
||||||
|
self.env.set_once(key, value)
|
||||||
|
|
||||||
def unset(self, args):
|
def unset(self, args):
|
||||||
"""
|
"""
|
||||||
unset KEY
|
unset KEY
|
||||||
@@ -190,9 +218,9 @@ they appear in the batchfile.
|
|||||||
for k in all_keys:
|
for k in all_keys:
|
||||||
self.env.unset_key(k)
|
self.env.unset_key(k)
|
||||||
|
|
||||||
def seti(self, args):
|
def setinc(self, args):
|
||||||
"""
|
"""
|
||||||
seti KEY INITIAL [FORMAT]
|
setinc KEY INITIAL [FORMAT]
|
||||||
KEY in the next file appearing in the batchfile will be set to INITIAL,
|
KEY in the next file appearing in the batchfile will be set to INITIAL,
|
||||||
which must be an integer. INITIAL will then be incremented by one and
|
which must be an integer. INITIAL will then be incremented by one and
|
||||||
this process will be repeated for each subsequent file in the
|
this process will be repeated for each subsequent file in the
|
||||||
@@ -206,7 +234,7 @@ they appear in the batchfile.
|
|||||||
if len(args) > 2:
|
if len(args) > 2:
|
||||||
fmt = args[2]
|
fmt = args[2]
|
||||||
|
|
||||||
self.env.metadatums[key] = initial
|
self.env.metadatums[key] = fmt % (int(initial))
|
||||||
self.env.incr[key] = fmt
|
self.env.incr[key] = fmt
|
||||||
|
|
||||||
def setp(self, args):
|
def setp(self, args):
|
||||||
|
|||||||
Reference in New Issue
Block a user