{
"version": 1,
"supportedProjectTypes": [ "UNKNOWN_PROJECT" ],
"id": "I.Fossil",
"category": "T.Import",
"trDescription": "Clones a Fossil repository and tries to load the contained project.",
"trDisplayName": "Fossil Clone",
"trDisplayCategory": "Import Project",
"icon": "icon.png",
"enabled": "%{JS: [ %{Plugins} ].indexOf('Fossil') >= 0}",
"options":
[
{ "key": "vcsId", "value": "I.Fossil" },
{ "key": "vcsName", "value": "%{JS: Vcs.displayName('%{vcsId}')}" },
{ "key": "isCloneRepo", "value": "%{JS: '%{RepoType}' === 'cloneRepo' }" },
{ "key": "isLocalRepo", "value": "%{JS: '%{RepoType}' === 'localRepo' }" },
{ "key": "SR", "value": "%{JS: '%{Repo}'.substr('%{Repo}'.indexOf(':') + 1).replace(/[^/@]+@/,'').replace(/:[0-9]+$/,'').replace(/[.](fossil|fsl)$/, '') }"},
{ "key": "defaultDir", "value": "%{JS: %{isCloneRepo} ? '%{SR}'.substr('%{SR}'.lastIndexOf('/') + 1).replace(/[.:\"]+/g, '-') : %{isLocalRepo} ? Util.baseName('%{LocalRepo}') : '' }"},
{ "key": "defaultFossilName", "value": "%{JS: %{isCloneRepo} ? '%{defaultDir}' : %{isLocalRepo} ? Util.completeBaseName('%{LocalRepo}') : '' }" },
{ "key": "defaultLocalRepoPath", "value": "%{JS: Fossil.defaultLocalRepoPath() }" },
{ "key": "defaultSslIdentityFile", "value": "%{JS: Fossil.defaultSslIdentityFile() }" },
{ "key": "defaultDisableAutosync", "value": "%{JS: Fossil.defaultDisableAutosync() }" },
{ "key": "SourceRepo", "value": "%{JS: %{isCloneRepo} ? '%{Repo}' : %{isLocalRepo} ? '%{LocalRepo}' : '' }" },
{ "key": "TargetPath", "value": "%{Path}/%{Dir}" },
{ "key": "FossilFile", "value": "%{defaultLocalRepoPath}/%{FossilName}.fossil" },
{ "key": "argRepoType", "value": "repository-type|%{RepoType}" },
{ "key": "argBranchTag", "value": "%{JS: '%{Branch}' ? 'branch-tag|%{Branch}' : '' }" },
{ "key": "argAdminUser", "value": "%{JS: '%{AdminUser}' ? 'admin-user|%{AdminUser}' : '' }" },
{ "key": "argSslIdentity", "value": "%{JS: '%{SslIdentity}' ? 'ssl-identity|%{SslIdentity}' : '' }" },
{ "key": "argIncludePrivate", "value": "%{JS: '%{IncludePrivate}' ? 'include-private|%{IncludePrivate}' : '' }" },
{ "key": "argDisableAutosync", "value": "%{JS: '%{DisableAutosync}' ? 'settings-autosync|%{DisableAutosync}' : '' }" },
{ "key": "argFossilFile", "value": "fossil-file|%{FossilFile}" }
],
"pages":
[
{
"trDisplayName": "Configuration",
"trShortTitle": "Configuration",
"trSubTitle": "Please configure %{vcsName} now.",
"typeId": "VcsConfiguration",
"enabled": "%{JS: !Vcs.isConfigured('%{vcsId}')}",
"data": { "vcsId": "%{vcsId}" }
},
{
"trDisplayName": "Select repository location type",
"trShortTitle": "Repository",
"typeId": "Fields",
"data":
[
{
"name": "RepoType",
"type": "ComboBox",
"data":
{
"index": 0,
"items":
[
{ "trKey": "Remote repository clone", "value": "cloneRepo" },
{ "trKey": "Local repository checkout", "value": "localRepo" }
]
}
}
]
},
{
"trDisplayName": "Location",
"trShortTitle": "Location",
"trSubTitle": "Specify repository location, branch, checkout destination, and options.",
"typeId": "Fields",
"data" :
[
{
"name": "GotSource",
"type": "LineEdit",
"visible": false,
"mandatory": true,
"isComplete": "%{JS: '%{FossilName}' === '' || (%{isCloneRepo} && !Util.exists('%{FossilFile}')) }",
"trIncompleteMessage": "The clone fossil already exists in local repositories path.",
"data":
{
"trText": "%{JS: (%{isCloneRepo} && '%{Repo}' !== '' && '%{FossilName}' !== '') || (%{isLocalRepo} && '%{LocalRepo}' !== '') ? 'true' : '' }"
}
},
{
"name": "Repo",
"trDisplayName": "Remote repository:",
"trToolTip": "For example: https://[user[:pass]@]host[:port]/[path]",
"type": "LineEdit",
"enabled": "%{isCloneRepo}",
"mandatory": false
},
{
"name": "FossilName",
"trDisplayName": "Local clone:",
"trToolTip": "Base name of a new local fossil file to clone into.",
"type": "LineEdit",
"enabled": "%{isCloneRepo}",
"mandatory": false,
"data":
{
"trText": "%{defaultFossilName}"
}
},
{
"name": "LocalRepo",
"trDisplayName": "Local repository:",
"trToolTip": "Path of an existing local fossil file to check out from.",
"type": "PathChooser",
"enabled": "%{isLocalRepo}",
"mandatory": false,
"data":
{
"kind": "file",
"basePath": "%{defaultLocalRepoPath}"
}
},
{
"name": "Branch",
"trDisplayName": "Branch:",
"type": "LineEdit",
"mandatory": false,
"data":
{
"trPlaceholder": ""
}
},
{
"name": "Sp1",
"type": "Spacer",
"data": { "factor": 2 }
},
{
"name": "Dir",
"trDisplayName": "Checkout directory:",
"type": "LineEdit",
"isComplete": "%{JS: '%{Dir}' === '' || !Util.exists('%{TargetPath}')}",
"trIncompleteMessage": "The checkout directory already exists in the filesystem.",
"data":
{
"trText": "%{defaultDir}"
}
},
{
"name": "Path",
"trDisplayName": "Create in:",
"type": "PathChooser",
"data":
{
"kind": "existingDirectory",
"basePath": "%{InitialPath}",
"path": "%{InitialPath}"
}
},
{
"name": "Sp2",
"type": "Spacer",
"data": { "factor": 2 }
},
{
"name": "AdminUser",
"trDisplayName": "Admin user:",
"trToolTip": "Privileged user added automatically to the created local repository.",
"type": "LineEdit",
"mandatory": false,
"enabled": "%{isCloneRepo}",
"data":
{
"trText": "%{JS: Fossil.defaultAdminUser()}"
}
},
{
"name": "SslIdentity",
"trDisplayName": "SSL/TLS identity:",
"trToolTip": "SSL/TLS client identity key to use if requested by the server.",
"type": "PathChooser",
"mandatory": false,
"enabled": "%{isCloneRepo}",
"data":
{
"kind": "file",
"path": "%{defaultSslIdentityFile}"
}
},
{
"name": "IncludePrivate",
"trDisplayName": "Include private branches",
"trToolTip": "Allow transfer of private branches.",
"type": "CheckBox",
"enabled": "%{isCloneRepo}",
"data":
{
"checkedValue": "true",
"uncheckedValue": ""
}
},
{
"name": "DisableAutosync",
"trDisplayName": "Disable auto-sync",
"trToolTip": "Disable automatic pull prior to commit or update and automatic push after commit or tag or branch creation.",
"type": "CheckBox",
"enabled": "%{isCloneRepo}",
"data":
{
"checkedValue": "off",
"uncheckedValue": "",
"checked": "%{defaultDisableAutosync}"
}
}
]
},
{
"trDisplayName": "Checkout",
"trShortTitle": "Checkout",
"typeId": "VcsCommand",
"data" :
{
"vcsId": "%{vcsId}",
"trRunMessage": "Running Fossil clone...",
"repository": "%{SourceRepo}",
"baseDirectory": "%{Path}",
"checkoutName": "%{Dir}",
"extraArguments":
[
"%{argRepoType}",
"%{argBranchTag}",
"%{argAdminUser}",
"%{argSslIdentity}",
"%{argIncludePrivate}",
"%{argDisableAutosync}",
"%{argFossilFile}"
],
"extraJobs" :
[
{
"command": "fossil",
"arguments": [ "version" ]
}
]
}
}
],
"generators":
[
{
"typeId": "Scanner",
"data": {
"subdirectoryPatterns": [ "^src$" ]
}
}
]
}