1
mirror of https://code.videolan.org/videolan/vlc synced 2024-09-04 09:11:33 +02:00

vlc-cache-gen: add --force option

This commit is contained in:
Rémi Denis-Courmont 2010-03-06 19:16:46 +02:00
parent 0b220edc80
commit 5a477c259b

View File

@ -25,6 +25,7 @@
#include <vlc/vlc.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#ifdef HAVE_SETLOCALE
# include <locale.h>
@ -41,9 +42,11 @@ static void version (void)
static void usage (const char *path)
{
printf ("Usage: %s <path>\n"
"Generate the LibVLC plugins cache "
"for the specified plugins directory.\n", path);
printf (
"Usage: %s [-f] <path>\n"
"Generate the LibVLC plugins cache for the specified plugins directory.\n"
" -f, --force forcefully reset the plugin cache (if it exists)\n",
path);
}
/* Explicit HACK */
@ -54,6 +57,7 @@ int main (int argc, char *argv[])
{
static const struct option opts[] =
{
{ "force", no_argument, NULL, 'f' },
{ "help", no_argument, NULL, 'h' },
{ "version", no_argument, NULL, 'V' },
{ NULL, no_argument, NULL, '\0'}
@ -64,9 +68,14 @@ int main (int argc, char *argv[])
#endif
int c;
while ((c = getopt_long (argc, argv, "hV", opts, NULL)) != -1)
bool force = false;
while ((c = getopt_long (argc, argv, "fhV", opts, NULL)) != -1)
switch (c)
{
case 'f':
force = true;
break;
case 'h':
usage (argv[0]);
return 0;
@ -87,14 +96,17 @@ int main (int argc, char *argv[])
if (asprintf (&arg, "--plugin-path=%s", path) == -1)
abort ();
const char *const vlc_argv[] = {
"--ignore-config",
"--quiet",
"--no-media-library",
arg,
NULL,
};
size_t vlc_argc = sizeof (vlc_argv) / sizeof (vlc_argv[0]) - 1;
const char *vlc_argv[7];
int vlc_argc = 0;
vlc_argv[vlc_argc++] = "--ignore-config";
vlc_argv[vlc_argc++] = "--quiet";
vlc_argv[vlc_argc++] = "--no-media-library";
if (force)
vlc_argv[vlc_argc++] = "--reset-plugins-cache";
vlc_argv[vlc_argc++] = arg;
vlc_argv[vlc_argc++] = "--"; /* end of options */
vlc_argv[vlc_argc] = NULL;
libvlc_instance_t *vlc = libvlc_new (vlc_argc, vlc_argv);
if (vlc != NULL)