Releases: bc-m/fm-xml-export-exploder
v0.6.1
BREAKING ⚠️
- Updated output structure
custom_functions/now contains.xmlfiles.custom_functions_sanitized/now contains.txtfiles.- When using domain output mode (
-t domain), the tool will automatically rename legacycustom_functions/directories tocustom_functions_sanitized/. If you have a script that automatically commits changes incustom_functions/, you should update it to use the new directorycustom_functions_sanitized/. - When using database-name output mode (
-t db), Git should recognize the new structure automatically.
Additional Changes
- Added support for SaXML v2.2.3.4 format.
- Added parsing for the following properties of the "Show Custom Dialog" script step:
Button1,Button2,Button3Field1,Field2,Field3
v0.5.1
Special thanks to @mislavkos for his contributions in this release!
New output organization
In this release we introduce a new output format starting with FileMaker database filename. This new format is also the new default. If you want the old behavior, adding the arguments -t domain use the previous output format behavior by domain.
Warning
If you are already using this CLI in your git workflow, we recommend adding -t domain to retain the previous output organization.
Output variant 1: Starting with FileMaker database filename (default)
Running with -t db.
├── [FileMaker database name]/
└── [...]
└── scripts/
└── [Directory name] - ID [Directory ID]
└── [Script name] - ID [Script ID].xml
└── scripts_sanitized/
└── [Directory name] - ID [Directory ID]
└── [Script name] - ID [Script ID].txt
└── tables/
└── [Table name] - ID [Table ID].xml
└── table_occurrences/
└── [TO name] - ID [TO ID].xml
└── themes/
└── [Theme name] - ID [Theme ID].xml
└── value_lists/
└── [Value list name] - ID [Value list ID].xml
└── [...]Output variant 2: Starting with domain (catalog name)
Running with -t domain.
├── [...]
├── scripts/
│ └── [FileMaker database name]/
│ └── [Directory name] - ID [Directory ID]/
│ └── [Script name] - ID [Script ID].xml
├── scripts_sanitized/
│ └── [FileMaker database name]/
│ └── [Directory name] - ID [Directory ID]/
│ └── [Script name] - ID [Script ID].txt
├── tables/
│ └── [FileMaker database name]/
│ └── [Table name] - ID [Table ID].xml
├── table_occurrences/
│ └── [FileMaker database name]/
│ └── [TO name] - ID [TO ID].xml
├── themes/
│ └── [FileMaker database name]/
│ └── [Theme name] - ID [Theme ID].xml
└── value_lists/
└── [FileMaker database name]/
└── [Value list name] - ID [Value list ID].xml
└── [...]Additional changes
- The FileMaker XML export file contains many catalogs. Starting with this release, each catalog and its directories are exported.
- In v0.4.1 we introduces an argument
-ato disable skipping less important but noisy elements. In this release we have a new '-l' flag to running the lossless mode, which retain all information from the XML-export.
v0.4.1
What's Changed
- feat: support fm21 by @bc-m in #54
- chore(deps): bump strum_macros from 0.26.2 to 0.26.4 by @dependabot in #57
- chore(deps): update dependencies by @bc-m in #73
- feat: parse script data source reference by @bc-m in #74
- feat: added flag to parse all lines instead of skipping some by @mislavkos in #78
New Contributors
- @mislavkos made their first contribution in #78
Full Changelog: v0.3.2...v0.4.1
v0.3.2
What's Changed
- docs: add examples by @bc-m in #45
- feat: parameter parsing further generalized by @bc-m in #46
- feat: parse related parameter by @bc-m in #47
- feat: parse Title and Message parameter by @bc-m in #49
- feat: unescape names of layouts and scripts by @bc-m in #52
- chore(deps): bump insta from 1.38.0 to 1.39.0 by @dependabot in #50
- chore(deps): bump anyhow from 1.0.82 to 1.0.86 by @dependabot in #51
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Generalized script-step parsing
Before
Prior to this release, the tool skipped parsing script steps that weren't marked as "supported" and printed only the script-step name and a warning to the sanitised script text file (the text files that look the same as the script in the FileMaker script workspace).
Example: Aus URL einfügen ⚠️⚠️⚠️ FM-XML-EXPORT-EXPLODER: UNKNOWN SCRIPT-STEP [ ID: "160" ] ⚠️⚠️⚠️
After
Starting with this release, the fm-xml-export-exploder parses each script step with a generalized script-step-parser and try to read each parameter. Not all parameters can be parsed yet, but unsupported ones will be marked in the sanitized script output.
Example: Aus URL einfügen [ SSL-Zertifikate verifizieren: OFF ; Auswahl: ON ; Mit Dialog: OFF ; Target: $$my.result ; ⚠️ PARAMETER "URL" NOT PARSED ⚠️ ; $curloptions ]
As you can see, the already supported parameters are now present, instead of hiding them all and just adding a warning for the hole script step as before. This change also means that we now support many more steps than before, and can more easily add support for the missing ones. You can follow the progress of supported script-steps here: #28
What's Changed
- feat: parse commit transaction by @bc-m in #37
- feat: parse open transaction by @bc-m in #38
- feat: parse revert transaction by @bc-m in #39
- feat: parse set error logging by @bc-m in #40
- feat: parse insert current date/time by @bc-m in #41
- feat: merge parse commit with generic parser by @bc-m in #42
- feat: parse all steps with generic parser by @bc-m in #43
Full Changelog: v0.2.1...v0.3.1
v0.2.1
What's Changed
- chore: enable dependabot by @bc-m in #19
- chore(deps): bump clap from 4.5.2 to 4.5.4 by @dependabot in #20
- chore(deps): bump regex from 1.10.3 to 1.10.4 by @dependabot in #21
- chore(deps): bump rayon from 1.9.0 to 1.10.0 by @dependabot in #22
- chore(deps): bump anyhow from 1.0.81 to 1.0.82 by @dependabot in #23
- chore(deps): bump insta from 1.36.1 to 1.38.0 by @dependabot in #24
- feat: use strum to better manage string enums by @bc-m in #25
- feat: decode html entities in comments by @bc-m in #26
- refactor: use FromRepr instead EnumString for enum simplification by @bc-m in #27
- feat: drop html-escape in favor of quick_xml unescape by @bc-m in #29
- feat: parse repetition from field references by @bc-m in #30
- feat: format variable repetition like filemaker by @bc-m in #31
- feat: parse insert text script step by @bc-m in #32
- feat: add parse boolean parameter util by @bc-m in #33
- refactor: reformat files by @bc-m in #34
- feat: parse truncate table and generalization by @bc-m in #35
- feat: support more steps by @bc-m in #36
New Contributors
- @jwillinghalpern made their first contribution in #18
- @dependabot made their first contribution in #20
Full Changelog: v0.1.5...v0.2.1
v0.1.5
What's Changed
- feat: introduce clap to parse cli arguments by @bc-m in #10
- feat: introduce anyhow for better error handling by @bc-m in #11
- feat: parse find script steps by @bc-m in #12
- feat: parse privilege set catalog by @bc-m in #13
- refactor: write elements to file by @bc-m in #14
- feat: parse extended privileges catalog by @bc-m in #15
- feat: parse custom menu set catalog by @bc-m in #16
- feat: parse custom menu catalog by @bc-m in #17
Full Changelog: v0.1.4...v0.1.5
v0.1.4
v0.1.3
What's Changed
- chore(ci): add lint and test by @bc-m in #5
- feat: add support for more open menu script steps by @bc-m in #6
- feat: parse relationship catalog by @bc-m in #7
- feat: parse table occurrences catalog by @bc-m in #8
- feat: extend template init script by new folders
Full Changelog: v0.1.2...v0.1.3