create aliases
This commit is contained in:
parent
76adb60b82
commit
3bd65d73c7
88
wpAliases.php
Executable file
88
wpAliases.php
Executable file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
|
||||
require 'getwebsites.cfg.php';
|
||||
|
||||
// Get password from the "pass" utility.
|
||||
exec('/usr/bin/pass ls megaphone/crm/restpassword', $password);
|
||||
$password = $password[0];
|
||||
$headers = login($password);
|
||||
|
||||
// Pull the view that shows the list of websites
|
||||
$resource = 'views/website_list?display_id=services_1';
|
||||
// Get the host the script is running on & only make dev aliases when the server matches
|
||||
$host = gethostname();
|
||||
$websites = get($headers, $resource, NULL);
|
||||
$websiteList = [];
|
||||
$yaml = '';
|
||||
foreach ($websites as $website) {
|
||||
$key = count($websiteList);
|
||||
if ($website['env'] === 'Dev' && $host !== $website['server']) {
|
||||
continue;
|
||||
}
|
||||
if ($website['cms'] === 'WordPress') {
|
||||
if ($website['env'] === 'Live') {
|
||||
$aliasName = $website['short_name'] ?? $website['client'];
|
||||
$alias = '@' . $aliasName;
|
||||
$websiteList[$alias]['ssh'] = $website['server'];
|
||||
}
|
||||
else {
|
||||
$alias = '@' . $website['client'] . '-' . strtolower($website['env']);
|
||||
}
|
||||
$websiteList[$alias]['path'] = $website['webroot'];
|
||||
$websiteList[$alias]['url'] = $website['primary_url'];
|
||||
}
|
||||
};
|
||||
|
||||
$aliasesFile = '/etc/wp-cli.yml';
|
||||
$yaml = yaml_emit_file($aliasesFile, $websiteList);
|
||||
|
||||
var_dump($yaml);
|
||||
|
||||
function post($curlHeaders, $operation, $postFields = NULL) {
|
||||
$curlHeaders[] = 'Content-Type: application/json';
|
||||
$curlHeaders[] = 'Accept: application/json';
|
||||
$curlOptions = [
|
||||
CURLOPT_HTTPHEADER => $curlHeaders,
|
||||
CURLOPT_RETURNTRANSFER => TRUE,
|
||||
CURLOPT_POST => 1,
|
||||
CURLOPT_URL => ENDPOINT . $operation,
|
||||
CURLOPT_POSTFIELDS => $postFields ? json_encode($postFields) : NULL,
|
||||
];
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, $curlOptions);
|
||||
$result = curl_exec($curl);
|
||||
curl_close($curl);
|
||||
return json_decode($result);
|
||||
}
|
||||
|
||||
function get($curlHeaders, $operation, $body = NULL)
|
||||
{
|
||||
$curlHeaders[] = 'Accept: application/json';
|
||||
$curlOptions = [
|
||||
CURLOPT_HTTPHEADER => $curlHeaders,
|
||||
CURLOPT_RETURNTRANSFER => TRUE,
|
||||
CURLOPT_URL => ENDPOINT . $operation,
|
||||
];
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, $curlOptions);
|
||||
$result = curl_exec($curl);
|
||||
curl_close($curl);
|
||||
return json_decode($result, TRUE);
|
||||
};
|
||||
|
||||
/**
|
||||
* Handle login (including getting a CSRF header)
|
||||
* @return array $headers The necessary headers to perform further POST/GET actions.
|
||||
*/
|
||||
function login($password)
|
||||
{
|
||||
$creds = [
|
||||
'username' => USERNAME,
|
||||
'password' => $password,
|
||||
];
|
||||
|
||||
$result = post(NULL, 'user/login.json', $creds);
|
||||
$headers[] = "Cookie: $result->session_name=$result->sessid";
|
||||
return $headers;
|
||||
}
|
Loading…
Reference in New Issue
Block a user