Implementation for interacting with git repositories.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=*), | public, | parameter | :: | compressed_package_name | = | 'compressed_package' |
Name of the compressed package that is generated temporarily. |
| type(enum_descriptor), | public, | parameter | :: | git_descriptor | = | enum_descriptor() |
Actual enumerator for descriptors |
| character(len=*), | public, | parameter | :: | out_fmt | = | '("#", *(1x, g0))' |
Common output format for writing to the command line |
Possible git target
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | branch | = | 201 |
Branch in git repository |
|
| integer, | public | :: | default | = | 200 |
Default target |
|
| integer, | public | :: | error | = | -999 |
Invalid descriptor |
|
| integer, | public | :: | revision | = | 203 |
Commit hash |
|
| integer, | public | :: | tag | = | 202 |
Tag in git repository |
Description of an git target
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | descriptor | = | git_descriptor%default |
Kind of the git target |
|
| character(len=:), | public, | allocatable | :: | object |
Additional descriptor of the git object |
||
| character(len=:), | public, | allocatable | :: | url |
Target URL of the git repository |
| procedure, public :: checkout | Fetch and checkout in local directory |
| generic, public :: dump => dump_to_toml, dump_to_file, dump_to_unit | |
| procedure, public :: dump_to_toml | |
| procedure, public :: info | Show information on instance |
| generic, public :: load => load_from_toml, load_from_file, load_from_unit | |
| procedure, public :: load_from_toml | |
| generic, public :: operator(==) => serializable_is_same | |
| procedure, public :: serializable_is_same => git_is_same | Serialization interface |
| procedure, public, non_overridable :: test_serialization | Test load/write roundtrip |
Code git descriptor to a string
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | descriptor |
Check that two git targets are equal All checks passed!
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(git_target_t), | intent(in) | :: | this | |||
| class(serializable_t), | intent(in) | :: | that |
Check that a cached dependency matches a manifest request
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(git_target_t), | intent(in) | :: | cached |
Two input git targets |
||
| type(git_target_t), | intent(in) | :: | manifest |
Two input git targets |
||
| integer, | intent(in) | :: | verbosity | |||
| integer, | intent(in) | :: | iunit |
Target a branch in the git repository
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | url |
Target URL of the git repository |
||
| character(len=*), | intent(in) | :: | branch |
Name of the branch of interest |
New git target
Default target
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | url |
Target URL of the git repository |
New git target
Target a specific git revision
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | url |
Target URL of the git repository |
||
| character(len=*), | intent(in) | :: | sha1 |
Commit hash of interest |
New git target
Target a git tag
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | url |
Target URL of the git repository |
||
| character(len=*), | intent(in) | :: | tag |
Tag name of interest |
New git target
Parse git descriptor identifier from a string
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | name |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(git_target_t), | intent(in) | :: | self |
Instance of the git target |
||
| character(len=*), | intent(in) | :: | local_path |
Local path to checkout in |
||
| type(error_t), | intent(out), | allocatable | :: | error |
Error |
Dump dependency to toml table
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(git_target_t), | intent(inout) | :: | self |
Instance of the serializable object |
||
| type(toml_table), | intent(inout) | :: | table |
Data structure |
||
| type(error_t), | intent(out), | allocatable | :: | error |
Error handling |
Archive a folder using git archive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | source |
Directory to archive. |
||
| character(len=*), | intent(in) | :: | destination |
Destination of the archive. |
||
| character(len=*), | intent(in) | :: | ref |
(Symbolic) Reference to be archived. |
||
| character(len=*), | intent(in), | optional | :: | additional_files(:) |
(Optional) list of additional untracked files to be added to the archive. |
|
| logical, | intent(in) | :: | verbose |
Print additional information if true. |
||
| type(error_t), | intent(out), | allocatable | :: | error |
Error handling. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | local_path |
Local path to checkout in |
||
| character(len=:), | intent(out), | allocatable | :: | object |
Git object reference |
|
| type(error_t), | intent(out), | allocatable | :: | error |
Error |
Show information on git target
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(git_target_t), | intent(in) | :: | self |
Instance of the git target |
||
| integer, | intent(in) | :: | unit |
Unit for IO |
||
| integer, | intent(in), | optional | :: | verbosity |
Verbosity of the printout |
Read dependency from toml table (no checks made at this stage)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(git_target_t), | intent(inout) | :: | self |
Instance of the serializable object |
||
| type(toml_table), | intent(inout) | :: | table |
Data structure |
||
| type(error_t), | intent(out), | allocatable | :: | error |
Error handling |