- Java 98.8%
- TSQL 0.4%
- PLpgSQL 0.3%
- Shell 0.3%
- Dockerfile 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| doc/licenses | ||
| docker | ||
| etc | ||
| gradle/wrapper | ||
| src | ||
| testfiles | ||
| .gitattributes | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE.txt | ||
| README.md | ||
| RELEASE.txt | ||
| settings.gradle.kts | ||
⚠️ ARCHIVED REPOSITORY
This repository is archived and no longer maintained. All development has moved to the new monorepo:
https://github.com/sfa-siard/siard-suitePlease create any issues or pull requests in the new monorepo, which now contains all submodules including this one.
SiardCmd - SIARD 2.2 Command-line Interface to download and upload relational databases
This package contains the SIARD command-line interface to download and upload relational databases in SIARD (Software-Independent Archival of Relational Databases) Format 2.2.
Getting started (for developers)
Prerequisites
- JDK 17
Build the project
./gradlew clean build
Integration tests
Runs all integration tests (Note: TestContainers are used, so Docker is required):
./gradlew integrationTest
SIARD command-line tools
To run the command-line tools siard-from-db and siard-to-db, first install the distribution:
./gradlew installDist
This will create the executable scripts in the build/install/siardcmd/bin directory.
For example, to archive a database, you would use siard-from-db:
./siard-from-db -j=jdbc:mysql://localhost:3306/database_name -u=username -p=password -s=/path/to/siard/file/filename.siard
To archive a specific schema only, you can use the --schema parameter. Passages 6.3. and 6.4. of the User Manual further describe the parameters in detail.
Deliverables
Builds the project, runs unit tests, and packages all artifacts with additional required files for execution in a CLI into ZIP and TAR under build/distributions/:
./gradlew assembleDist
Versioning, tags, and releases
Versions and tags are managed with the Axion Release Plugin for Gradle.
Short overview:
./gradlew currentVersion # Shows the current version
./gradlew release # Creates a new release, adds a tag, and pushes it to remote
Once a tag is pushed to remote, GitHub Actions will create and upload deliverables specified in deliverables.yml.
Documentation
Declaration
Contributions to the codebase have been made with the support of Windsurf. Windsurf is AI-powered code completion tool, that is trained exclusively on natural language and source code data with permissive licenses.