Skip to content

Releases: bc-m/fm-xml-export-exploder

v0.6.1

04 Mar 22:38
f294dfa

Choose a tag to compare

BREAKING ⚠️

  • Updated output structure
    • custom_functions/ now contains .xml files.
    • custom_functions_sanitized/ now contains .txt files.
    • When using domain output mode (-t domain), the tool will automatically rename legacy custom_functions/ directories to custom_functions_sanitized/. If you have a script that automatically commits changes in custom_functions/, you should update it to use the new directory custom_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, Button3
    • Field1, Field2, Field3

v0.5.1

08 Jul 09:46
30eb64b

Choose a tag to compare

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 -a to 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

23 Sep 17:38
5f39576

Choose a tag to compare

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

Full Changelog: v0.3.2...v0.4.1

v0.3.2

21 May 20:17

Choose a tag to compare

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

04 May 20:32

Choose a tag to compare

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

03 May 18:05

Choose a tag to compare

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

Full Changelog: v0.1.5...v0.2.1

v0.1.5

12 Mar 18:34

Choose a tag to compare

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

06 Mar 08:38

Choose a tag to compare

What's Changed

  • fix: support dots in entity names by @bc-m in #9

Full Changelog: v0.1.3...v0.1.4

v0.1.3

04 Mar 19:52

Choose a tag to compare

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

v0.1.2

04 Mar 11:03

Choose a tag to compare

What's Changed

  • fix: parse fm18 tables by @bc-m in #4

Full Changelog: v0.1.1...v0.1.2