diff --git a/README.md b/README.md index 8c4fc45..8c37f79 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ Operation | Description --------------------------- | --------------------------- del_model <reg_ex> | Deletes all models whose name contains the regular expression <reg_ex>. geo_name <name> | Change the .geo's name to <name>. + rename_mode <new> <old> | Rename a model from <new> to <old>. Multiple operations can be specified and performed in the same run. diff --git a/geo_edit.py b/geo_edit.py index 7e0c40b..26143de 100755 --- a/geo_edit.py +++ b/geo_edit.py @@ -13,6 +13,7 @@ if len(sys.argv) < 4: print("Operations:") print(" del_model Delete models with the name matching regular expression.") print(" geo_name Rename the name of the .geo .") + print(" rename_model Rename model to .") exit() fn_in = sys.argv[1] @@ -26,6 +27,7 @@ geo = Geo() geo.loadFromFile(fh_in) fh_in.close() print("Done.") +print() arg_i = 3 while arg_i < len(sys.argv): @@ -47,10 +49,24 @@ while arg_i < len(sys.argv): arg_i += 1 print("Rename GEO from '%s' to '%s'" % (geo.header_modelheader_name.decode("utf-8"), name)) geo.header_modelheader_name = bytes(name, "utf-8") + elif operation == "rename_model": + nameold = bytes(sys.argv[arg_i], "utf-8") + namenew = bytes(sys.argv[arg_i+1], "utf-8") + arg_i += 2 + renamed = False + for m in geo.models: + if m.name == nameold: + m.name = namenew + print("Renamed model '%s' to '%s'" % (nameold.decode("utf-8"), namenew.decode("utf-8"))) + renamed +=1 + break + if renamed <= 0: + print(" **Warning!*** Rename failed, no model name matched '%s'." % (nameold.decode("utf-8"), )) else: print("Unknown operation: '%s'" % (operation, )) exit() +print() print("Writing '%s'..." % (fn_out, )) fh_out = open(fn_out, "wb") geo.saveToFile(fh_out)