|
12 | 12 | from pathlib import Path |
13 | 13 | from typing import Any, Callable, Dict, List, MutableMapping, Optional, Set, Union |
14 | 14 |
|
| 15 | +from schema_salad.sourceline import SourceLine, add_lc_filename, cmap |
| 16 | + |
15 | 17 | import ruamel.yaml |
16 | 18 | from ruamel.yaml.comments import CommentedMap # for consistent sort order |
17 | | -from schema_salad.sourceline import SourceLine, add_lc_filename, cmap |
18 | 19 |
|
19 | 20 | _logger = logging.getLogger("cwl-upgrader") # pylint: disable=invalid-name |
20 | 21 | defaultStreamHandler = logging.StreamHandler() # pylint: disable=invalid-name |
@@ -46,6 +47,11 @@ def parse_args(args: List[str]) -> argparse.Namespace: |
46 | 47 | parser.add_argument( |
47 | 48 | "--dir", help="Directory in which to save converted files", default=Path.cwd() |
48 | 49 | ) |
| 50 | + parser.add_argument( |
| 51 | + "--always-write", |
| 52 | + help="Always write a file, even if no changes were made.", |
| 53 | + action="store_true", |
| 54 | + ) |
49 | 55 | parser.add_argument( |
50 | 56 | "inputs", |
51 | 57 | nargs="+", |
@@ -93,7 +99,7 @@ def run(args: argparse.Namespace) -> int: |
93 | 99 | target_version=target_version, |
94 | 100 | imports=imports, |
95 | 101 | ) |
96 | | - if upgraded_document is not None: |
| 102 | + if upgraded_document is not document or not args.always_write: |
97 | 103 | write_cwl_document(upgraded_document, Path(path).name, args.dir) |
98 | 104 | return 0 |
99 | 105 |
|
@@ -154,9 +160,9 @@ def upgrade_document( |
154 | 160 | elif version == "v1.2": |
155 | 161 | if target_version == "v1.2": |
156 | 162 | _logger.info("Not upgrading v1.2 document as requested.") |
157 | | - return |
| 163 | + return document |
158 | 164 | elif target_version == "latest": |
159 | | - return |
| 165 | + return document |
160 | 166 | else: |
161 | 167 | _logger.error(f"Unknown cwlVersion in source document: {version}") |
162 | 168 | return |
|
0 commit comments