Move legacy global files into the default network folder once.
(self)
| 127 | # Legacy migration |
| 128 | # ------------------------------------------------------------------ |
| 129 | def _bootstrap_legacy_layout(self): |
| 130 | """Move legacy global files into the default network folder once.""" |
| 131 | default_dirs = self._ensure_network_dirs(self._slugify(self.default_ssid)) |
| 132 | (default_network_dir, |
| 133 | default_db_dir, |
| 134 | default_intel_dir, |
| 135 | default_threat_dir, |
| 136 | default_data_stolen_dir, |
| 137 | default_credentials_dir, |
| 138 | _default_scan_results, |
| 139 | _default_vulnerabilities) = default_dirs |
| 140 | default_db_path = os.path.join(default_db_dir, f"{self._slugify(self.default_ssid)}.db") |
| 141 | |
| 142 | legacy_db = os.path.join(self.base_data_dir, 'ragnar.db') |
| 143 | if os.path.exists(legacy_db) and not os.path.exists(default_db_path): |
| 144 | shutil.move(legacy_db, default_db_path) |
| 145 | |
| 146 | legacy_intel = os.path.join(self.base_data_dir, 'intelligence') |
| 147 | self._migrate_directory_contents(legacy_intel, default_intel_dir) |
| 148 | |
| 149 | legacy_threat = os.path.join(self.base_data_dir, 'threat_intelligence') |
| 150 | self._migrate_directory_contents(legacy_threat, default_threat_dir) |
| 151 | |
| 152 | legacy_data_stolen = os.path.join(self.base_data_dir, 'output', 'data_stolen') |
| 153 | self._migrate_directory_contents(legacy_data_stolen, default_data_stolen_dir) |
| 154 | |
| 155 | legacy_credentials = os.path.join(self.base_data_dir, 'output', 'crackedpwd') |
| 156 | self._migrate_directory_contents(legacy_credentials, default_credentials_dir) |
| 157 | |
| 158 | def _migrate_directory_contents(self, src: str, dest: str): |
| 159 | if not os.path.isdir(src): |
no test coverage detected