Files
academy-scripts/updateConfluenceBaseURL
2024-02-13 17:03:06 +00:00

49 lines
1.3 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
use Getopt::Long qw(GetOptions);
my $username;
my $password;
my $serverurl;
my $baseurl;
my $updateURL;
my $updateArgs;
my $response;
my $cmd;
my $isJira;
GetOptions('username=s' => \$username,
'password=s' => \$password,
'baseurl=s' => \$baseurl) or usage();
if (!defined $username) { $username = "admin" }
if (!defined $password) { $password = "admin" }
if (!defined $baseurl) { usage(); }
$updateURL = "$baseurl/rest/base-url/1.0/base-url?baseUrl=$baseurl";
$updateArgs = "-X PUT -H \"X-Atlassian-Token: no-check\" -u \"$username:$password\"";
# use curl to update the baseURL
$cmd = "curl -s -S -o /dev/null -w %{http_code} $updateArgs $updateURL";
print "updating BaseURL with: $cmd\n";
$response = `$cmd`;
print "http response: $response\n";
if ($response == "200") { print "Confluence baseURL updated successfully\n"; }
else {
if ($response == "404") { print "FAILED: this Confluence instance does not support BaseURL updates. Install AddOn to add support!\n"; }
else { print "FAILED: http status code on update: $response\n"; exit 1;}
}
exit 0;
sub usage
{
print "Usage: $0 --baseurl newBaseURL [--username adminUsername] [--password adminPassword]\n";
exit 1;
}