|
|
@@ -13,6 +13,9 @@ use Mojo::Util qw(decode encode slurp spurt trim);
|
|
|
use Term::UI;
|
|
|
use Term::ReadLine;
|
|
|
|
|
|
+my $hubLengthLimit = 5000;
|
|
|
+my $githubBase = 'https://github.com/docker-library/docs/tree/master';
|
|
|
+
|
|
|
my $username;
|
|
|
my $password;
|
|
|
my $batchmode;
|
|
|
@@ -50,11 +53,20 @@ die 'user failed' unless $userData->success;
|
|
|
$userData = $userData->res->json;
|
|
|
|
|
|
sub prompt_for_edit {
|
|
|
- my ($currentText, $proposedFile) = @_;
|
|
|
+ my $currentText = shift;
|
|
|
+ my $proposedFile = shift;
|
|
|
+ my $lengthLimit = shift // 0;
|
|
|
|
|
|
my $proposedText = slurp $proposedFile or warn 'missing ' . $proposedFile;
|
|
|
$proposedText = trim(decode('UTF-8', $proposedText));
|
|
|
|
|
|
+ if ($lengthLimit > 0 && length($proposedText) > $lengthLimit) {
|
|
|
+ # TODO https://github.com/docker/hub-beta-feedback/issues/238
|
|
|
+ my $fullUrl = "$githubBase/$proposedFile";
|
|
|
+ my $note = "**Note:** the description for this image is longer than the Hub length limit of $lengthLimit, so has been trimmed. The full description can be found at [$fullUrl]($fullUrl). See [docker/hub-beta-feedback#238](https://github.com/docker/hub-beta-feedback/issues/238) for more information.\n\n";
|
|
|
+ $proposedText = $note . substr $proposedText, 0, ($lengthLimit - length($note));
|
|
|
+ }
|
|
|
+
|
|
|
return $currentText if $currentText eq $proposedText;
|
|
|
|
|
|
my @proposedFileBits = fileparse($proposedFile, qr!\.[^.]*!);
|
|
|
@@ -108,7 +120,7 @@ while (my $repo = shift) { # '/library/hylang', '/tianon/perl', etc
|
|
|
my $repoDetails = $repoTx->res->json;
|
|
|
|
|
|
my $hubShort = prompt_for_edit($repoDetails->{description}, $repoName . '/README-short.txt');
|
|
|
- my $hubLong = prompt_for_edit($repoDetails->{full_description}, $repoName . '/README.md');
|
|
|
+ my $hubLong = prompt_for_edit($repoDetails->{full_description}, $repoName . '/README.md', $hubLengthLimit);
|
|
|
|
|
|
say 'no change to ' . $repoName . '; skipping' and next if $repoDetails->{description} eq $hubShort and $repoDetails->{full_description} eq $hubLong;
|
|
|
|