Added simple cmd for php

This commit is contained in:
Antonio de la Rosa 2025-12-28 23:52:39 +01:00
parent a02ce657f5
commit f78f438b16

View file

@ -0,0 +1,83 @@
<?php
namespace PhangoApp\CuchuluPHPUtils;
class Cmd {
static public function getopts($args) {
//Generate getopt
// Option ['option' => ['help' => 'help text', 'required' => false, 'only_option' => true ]]]
//Horrible optimization.
$h_options=[];
$h_options_text=[];
foreach($args as $k => $arg) {
$required_value='';
$only_option=$arg['only_option'] ?? false;
$required=$arg['required'] ?? false;
if($only_option) {
$options[$k]=$k.'::';
$h_options[]='--'.$k;
}
else if($required) {
$options[$k]=$k.':';
$required_value='[required]';
$h_options[]='--'.$k.'='.strtoupper($k).$required_value;
}
$h_options_text[$k]='--'.$k.': '.$arg['help'] ?? ucfirst($k);
}
$final_args=getopt('', array_values($options));
$error=false;
foreach($args as $k => $arg) {
$only_option=$arg['only_option'] ?? false;
$required=$arg['required'] ?? false;
if($required && !isset($final_args[$k])) {
$error=true;
}
}
if($error) {
/*
* usage: delete_wordpress.py [-h] --domain DOMAIN --webapp WEBAPP
delete_wordpress.py: error: the following arguments are required: --domain, --webapp
*/
echo "usage: ".basename(__FILE__)." ".implode(' ', $h_options)." \n";
echo implode("\n", $h_options_text)."\n";
exit(1);
}
return $final_args;
}
}