Skip to content
This repository has been archived by the owner on Mar 19, 2019. It is now read-only.

Commit

Permalink
properly write git info without existing manifest
Browse files Browse the repository at this point in the history
  • Loading branch information
cdupuis committed Jul 12, 2017
1 parent f759f5a commit 2d01cfc
Showing 1 changed file with 26 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,40 @@ public static ArtifactSource write(GitInfo provenanceInfo, ArtifactSource source
return source;
}

String provenance = writeProvenanceInfoToManifest(provenanceInfo, source);

Option<FileArtifact> manifestArtifact = source.findFile(".atomist/manifest.yml");
if (manifestArtifact.isDefined()) {
return writeProvenanceInfoToManifest(provenanceInfo, source, manifestArtifact);
StringBuilder sb = new StringBuilder(manifestArtifact.get().content());
FileArtifact newManifest = StringFileArtifact.apply("manifest.yml", ".atomist",
sb.append(provenance).toString());

return source.edit(new FileEditor() {
@Override
public boolean canAffect(FileArtifact f) {
return f.path().equals(newManifest.path());
}

@Override
public FileArtifact edit(FileArtifact f) {
return newManifest;
}
});
}
else {
FileArtifact newManifest = StringFileArtifact.apply("manifest.yml", ".atomist",
provenance);
return source.plus(newManifest);
}
return source;
}

private static ArtifactSource writeProvenanceInfoToManifest(GitInfo provenanceInfo,
ArtifactSource source, Option<FileArtifact> manifestArtifact) {
StringBuilder sb = new StringBuilder(manifestArtifact.get().content()).append("\n---\n");
private static String writeProvenanceInfoToManifest(GitInfo provenanceInfo,
ArtifactSource source) {
StringBuilder sb = new StringBuilder().append("\n---\n");
sb.append("repo: \"").append(provenanceInfo.repo()).append("\"\n");
sb.append("branch: \"").append(provenanceInfo.branch()).append("\"\n");
sb.append("sha: \"").append(provenanceInfo.sha()).append("\"\n");
FileArtifact newManifest = StringFileArtifact.apply("manifest.yml", ".atomist",
sb.toString());

return source.edit(new FileEditor() {
@Override
public boolean canAffect(FileArtifact f) {
return f.path().equals(newManifest.path());
}

@Override
public FileArtifact edit(FileArtifact f) {
return newManifest;
}
});
return sb.toString();
}

}

0 comments on commit 2d01cfc

Please sign in to comment.