From 5a477c259b7d963ec8757348f01db81a1d39387d Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sat, 6 Mar 2010 19:16:46 +0200 Subject: [PATCH] vlc-cache-gen: add --force option --- bin/cachegen.c | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/bin/cachegen.c b/bin/cachegen.c index 8c96f08735..5223cfb830 100644 --- a/bin/cachegen.c +++ b/bin/cachegen.c @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef HAVE_SETLOCALE # include @@ -41,9 +42,11 @@ static void version (void) static void usage (const char *path) { - printf ("Usage: %s \n" - "Generate the LibVLC plugins cache " - "for the specified plugins directory.\n", path); + printf ( +"Usage: %s [-f] \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) -- 2.39.2