v1.1
Signed-off-by: anthony <anthonyaxenov@gmail.com>
This commit is contained in:
parent
ec199aa8c2
commit
e9f993b396
@ -5,7 +5,7 @@
|
|||||||
* Simple Postman Collection Converter
|
* Simple Postman Collection Converter
|
||||||
*
|
*
|
||||||
* Author: Anthony Axenov (c) 2021
|
* Author: Anthony Axenov (c) 2021
|
||||||
* Version: v1.0
|
* Version: v1.1
|
||||||
* License: MIT
|
* License: MIT
|
||||||
* Dependecies: php8.0, php-json
|
* Dependecies: php8.0, php-json
|
||||||
*
|
*
|
||||||
@ -33,6 +33,12 @@
|
|||||||
* Note: this script was quickly written to solve one exact problem in one NDA-project, so it may contain
|
* Note: this script was quickly written to solve one exact problem in one NDA-project, so it may contain
|
||||||
* stupid errors and (for sure) doesn't cover ALL of possible cases according to collection scheme. So feel
|
* stupid errors and (for sure) doesn't cover ALL of possible cases according to collection scheme. So feel
|
||||||
* free to fork and change this script according your needs and to propose your fixes here.
|
* free to fork and change this script according your needs and to propose your fixes here.
|
||||||
|
***********************************************************************************************************************
|
||||||
|
* Version history:
|
||||||
|
*
|
||||||
|
* v1.0: initial
|
||||||
|
* v1.1: improved output directory structure
|
||||||
|
*
|
||||||
**********************************************************************************************************************/
|
**********************************************************************************************************************/
|
||||||
|
|
||||||
declare(strict_types = 1);
|
declare(strict_types = 1);
|
||||||
@ -73,7 +79,7 @@ function out(mixed ...$data): void
|
|||||||
*/
|
*/
|
||||||
function read_collection_file(string $path): object
|
function read_collection_file(string $path): object
|
||||||
{
|
{
|
||||||
$content = file_get_contents(str_replace('~/', $_SERVER['HOME'], $path));
|
$content = file_get_contents(str_replace('~/', $_SERVER['HOME'] . '/', $path));
|
||||||
$json = json_decode($content);
|
$json = json_decode($content);
|
||||||
return json_last_error() === JSON_ERROR_NONE
|
return json_last_error() === JSON_ERROR_NONE
|
||||||
? $json
|
? $json
|
||||||
@ -91,7 +97,7 @@ function read_collection_file(string $path): object
|
|||||||
*/
|
*/
|
||||||
function write_request(object $request, ?string $dir_tree = null)
|
function write_request(object $request, ?string $dir_tree = null)
|
||||||
{
|
{
|
||||||
$filepath = './files/' . ($dir_tree ? $dir_tree . '/' : '') . $request->name;
|
$filepath = OUTPUT_DIR . '/' . ($dir_tree ? $dir_tree . '/' : '') . $request->name;
|
||||||
$httpfile = "$filepath.http";
|
$httpfile = "$filepath.http";
|
||||||
$mdfile = "$filepath.md";
|
$mdfile = "$filepath.md";
|
||||||
|
|
||||||
@ -104,7 +110,8 @@ function write_request(object $request, ?string $dir_tree = null)
|
|||||||
$httpfile,
|
$httpfile,
|
||||||
'# ' . str_replace("\n", "\n# ", $request->request->description) . "\n\n",
|
'# ' . str_replace("\n", "\n# ", $request->request->description) . "\n\n",
|
||||||
FILE_APPEND
|
FILE_APPEND
|
||||||
) &&*/ file_put_contents($mdfile, "{$request->request->description}\n\n", FILE_APPEND);
|
) &&*/
|
||||||
|
file_put_contents($mdfile, "{$request->request->description}\n\n", FILE_APPEND);
|
||||||
|
|
||||||
// generating request data
|
// generating request data
|
||||||
$url = "{$request->request->method} {$request->request->url->raw} HTTP/1.1";
|
$url = "{$request->request->method} {$request->request->url->raw} HTTP/1.1";
|
||||||
@ -179,9 +186,9 @@ function process_item($item = null)
|
|||||||
} else {
|
} else {
|
||||||
$dir_tree[] = $subitem->name;
|
$dir_tree[] = $subitem->name;
|
||||||
$path = implode('/', $dir_tree);
|
$path = implode('/', $dir_tree);
|
||||||
!file_exists('./files/' . $path) && mkdir('./files/' . $path);
|
!file_exists(OUTPUT_DIR . "/$path/") && mkdir(OUTPUT_DIR . "/$path/", recursive: true);
|
||||||
isset($subitem->description) && file_put_contents(
|
isset($subitem->description) && file_put_contents(
|
||||||
'./files/' . $path . '/README.md',
|
OUTPUT_DIR . "/$path/README.md",
|
||||||
$subitem->description
|
$subitem->description
|
||||||
);
|
);
|
||||||
process_item($subitem->item);
|
process_item($subitem->item);
|
||||||
@ -206,13 +213,16 @@ function remove_directory(string $path): void
|
|||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
is_dir($file) ? remove_directory($file) : unlink($file);
|
is_dir($file) ? remove_directory($file) : unlink($file);
|
||||||
}
|
}
|
||||||
rmdir($path);
|
file_exists($path) && rmdir($path);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
remove_directory('./files');
|
|
||||||
!file_exists('./files/') && mkdir('./files/');
|
|
||||||
$json = read_collection_file($argv[1] ?? throw new Exception('ERROR: No collection file specified'));
|
$json = read_collection_file($argv[1] ?? throw new Exception('ERROR: No collection file specified'));
|
||||||
|
define('OUTPUT_DIR', './files/' . $json->info->name);
|
||||||
|
remove_directory(OUTPUT_DIR);
|
||||||
|
!file_exists(OUTPUT_DIR) && mkdir(OUTPUT_DIR, recursive: true) || throw new Exception(
|
||||||
|
'ERROR: Cannot create output directory: ' . OUTPUT_DIR
|
||||||
|
);
|
||||||
process_item($json->item);
|
process_item($json->item);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
out($e->getMessage());
|
out($e->getMessage());
|
||||||
|
Loading…
Reference in New Issue
Block a user