The previous use of die() was not very useful in CLI mode as the script
was always returning 0.
Fix that and also write error messages to the appropriate output stream.
Note the use of 'php://output' as error stream for non CLI mode, this
ensures that error messages would be readable in the browser window.
echo usage($argv);
exit(0);
default:
echo usage($argv);
exit(0);
default:
+ fwrite(STDERR, usage($argv));
+ exit(1);
-if (php_sapi_name() != 'cli')
+if (php_sapi_name() != 'cli') {
$options = parse_options_query_string();
$options = parse_options_query_string();
+ $ERROR_STREAM = fopen('php://output', 'w');
+} else {
$options = parse_options_cli($argv, $argc);
$options = parse_options_cli($argv, $argc);
+ $ERROR_STREAM = fopen('php://stderr', 'w');
+}
-if (!isset($options['src_url']))
- die(usage($argv));
+if (!isset($options['src_url'])) {
+ fwrite($ERROR_STREAM, usage($argv));
+ exit(1);
+}
$url = parse_url($options['src_url']);
$url = parse_url($options['src_url']);
-if (FALSE === $url || empty($url["host"]))
- die("Invalid url: ${options['src_url']}\n");
+if (FALSE === $url || empty($url["host"])) {
+ fwrite($ERROR_STREAM, "Invalid url: ${options['src_url']}\n");
+ exit(1);
+}
$stylesheet = "file://" . __DIR__ . "/rss_converter_" . $url["host"] . ".xsl";
$stylesheet = "file://" . __DIR__ . "/rss_converter_" . $url["host"] . ".xsl";
-if (FALSE === file_exists($stylesheet))
- die("Conversion to RSS not supported: {$url["host"]}\n");
+if (FALSE === file_exists($stylesheet)) {
+ fwrite($ERROR_STREAM, "Conversion to RSS not supported: {$url["host"]}\n");
+ exit(1);
+}
$tweeper = new Tweeper($stylesheet, $options['generate_enclosure']);
echo $tweeper->tweep($options['src_url']);
$tweeper = new Tweeper($stylesheet, $options['generate_enclosure']);
echo $tweeper->tweep($options['src_url']);