updated the config files to a tempalte/local standard format
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1 +1,8 @@
|
|||||||
references/
|
references/
|
||||||
|
|
||||||
|
# Per-machine working config (created from config.template.ini on first run)
|
||||||
|
config.ini
|
||||||
|
|
||||||
|
# Python bytecode cache
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ Extracts and organizes documents from FileCabinet CS (Thomson Reuters) using GUI
|
|||||||
|
|
||||||
| File | Purpose |
|
| File | Purpose |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| `config.ini` | All paths, timeouts, and FCCS control identifiers |
|
| `config.template.ini` | Tracked template for all paths, timeouts, and FCCS control identifiers |
|
||||||
|
| `config.ini` | Per-machine working config (git-ignored; auto-created from the template) |
|
||||||
| `fccs_folders.txt` | FCCS folder templates (manually populated per engagement) |
|
| `fccs_folders.txt` | FCCS folder templates (manually populated per engagement) |
|
||||||
| `fccs_config.py` | Shared config loading, logging, folder pattern building |
|
| `fccs_config.py` | Shared config loading, logging, folder pattern building |
|
||||||
| `fccs_scan.py` | Step 1: Scan backup directory for drawer IDs |
|
| `fccs_scan.py` | Step 1: Scan backup directory for drawer IDs |
|
||||||
@@ -26,7 +27,7 @@ Extracts and organizes documents from FileCabinet CS (Thomson Reuters) using GUI
|
|||||||
|
|
||||||
## Setup Per Engagement
|
## Setup Per Engagement
|
||||||
|
|
||||||
1. Edit `config.ini` -- point `backup_dir`, `export_dir`, and `output_dir` at the client's directories.
|
1. Edit `config.ini` -- point `backup_dir`, `export_dir`, and `output_dir` at the client's directories. This file is created automatically from `config.template.ini` the first time you run any script (it's git-ignored, so your machine-specific paths never drift the repo). To reset a machine, delete `config.ini` and re-run. Keep shared/default changes in `config.template.ini` (the tracked file).
|
||||||
2. Populate `fccs_folders.txt` -- open FCCS > System Configuration > Document Folders and list each folder template exactly as shown, one per line. Keep the `YYYY` prefix on recurring folders. UltraTax CS folders are detected automatically and do not need to be listed.
|
2. Populate `fccs_folders.txt` -- open FCCS > System Configuration > Document Folders and list each folder template exactly as shown, one per line. Keep the `YYYY` prefix on recurring folders. UltraTax CS folders are detected automatically and do not need to be listed.
|
||||||
|
|
||||||
## Workflow
|
## Workflow
|
||||||
@@ -134,7 +135,7 @@ Any outstanding drawer that also appears in `crashed.txt` (its export was aborte
|
|||||||
|
|
||||||
## Config Reference
|
## Config Reference
|
||||||
|
|
||||||
All scripts read from `config.ini` (or specify `--config path\to\config.ini`).
|
All scripts read from `config.ini` (or specify `--config path\to\config.ini`). `config.ini` is the git-ignored, per-machine copy auto-created from the tracked `config.template.ini`; edit `config.ini` locally.
|
||||||
|
|
||||||
- **`[paths]`** -- backup_dir, export_dir, output_dir, drawer_id_file, completed_file, ignore_file, crashed_file, log_file, verify_report, report_html, screenshot_dir, manifest_dir, folder_list
|
- **`[paths]`** -- backup_dir, export_dir, output_dir, drawer_id_file, completed_file, ignore_file, crashed_file, log_file, verify_report, report_html, screenshot_dir, manifest_dir, folder_list
|
||||||
- **`[timeouts]`** -- nav_timeout, dialog_timeout, progress_appear, progress_finish, settle, confirm_timeout
|
- **`[timeouts]`** -- nav_timeout, dialog_timeout, progress_appear, progress_finish, settle, confirm_timeout
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,3 +1,12 @@
|
|||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# TEMPLATE CONFIG — tracked in git. Do NOT edit for a specific machine.
|
||||||
|
#
|
||||||
|
# On first run the scripts copy this file to `config.ini` (which is git-ignored)
|
||||||
|
# and use that. Edit `config.ini` for this machine's paths/settings so your
|
||||||
|
# local changes never drift the repo. To reset a machine, delete `config.ini`
|
||||||
|
# and re-run; it will be recreated from this template.
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
[paths]
|
[paths]
|
||||||
# Point these at the current engagement's directories
|
# Point these at the current engagement's directories
|
||||||
backup_dir = C:\Migration\Backups
|
backup_dir = C:\Migration\Backups
|
||||||
@@ -5,11 +5,13 @@ Shared configuration, logging, and utilities for the FCCS extraction tool.
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
import shutil
|
||||||
import argparse
|
import argparse
|
||||||
import configparser
|
import configparser
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
DEFAULT_CONFIG = "config.ini"
|
DEFAULT_CONFIG = "config.ini"
|
||||||
|
TEMPLATE_CONFIG = "config.template.ini"
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
@@ -24,12 +26,31 @@ def parse_args():
|
|||||||
|
|
||||||
|
|
||||||
def load_config(path=None):
|
def load_config(path=None):
|
||||||
"""Read config.ini and return a ConfigParser object."""
|
"""Read the config file and return a ConfigParser object.
|
||||||
|
|
||||||
|
Config is split into two files:
|
||||||
|
- config.template.ini : tracked in git, the pristine template.
|
||||||
|
- config.ini : git-ignored, this machine's working copy.
|
||||||
|
|
||||||
|
When no explicit --config path is given, the per-machine config.ini is used.
|
||||||
|
If it doesn't exist yet, it's created from config.template.ini so a freshly
|
||||||
|
cloned/pulled repo works out of the box without editing the tracked file.
|
||||||
|
Edit config.ini locally; your changes never drift the repo.
|
||||||
|
"""
|
||||||
if path is None:
|
if path is None:
|
||||||
script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||||
path = os.path.join(script_dir, DEFAULT_CONFIG)
|
path = os.path.join(script_dir, DEFAULT_CONFIG)
|
||||||
|
# Auto-create the per-machine config from the template on first run.
|
||||||
|
if not os.path.exists(path):
|
||||||
|
template = os.path.join(script_dir, TEMPLATE_CONFIG)
|
||||||
|
if os.path.exists(template):
|
||||||
|
shutil.copyfile(template, path)
|
||||||
|
print(f"Created {DEFAULT_CONFIG} from {TEMPLATE_CONFIG}. "
|
||||||
|
f"Edit it for this machine's settings: {path}")
|
||||||
if not os.path.exists(path):
|
if not os.path.exists(path):
|
||||||
print(f"ERROR: config file not found: {path}")
|
print(f"ERROR: config file not found: {path}")
|
||||||
|
print(f" Expected {DEFAULT_CONFIG} or a --config path "
|
||||||
|
f"(template: {TEMPLATE_CONFIG}).")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
cfg = configparser.ConfigParser()
|
cfg = configparser.ConfigParser()
|
||||||
cfg.read(path, encoding="utf-8")
|
cfg.read(path, encoding="utf-8")
|
||||||
|
|||||||
Reference in New Issue
Block a user