libarchive: open_zipped() does not need to check extensions for e.g. gzip
[oweals/busybox.git] / selinux / chcon.c
index e00cdda1bb6c36d21ef071135ce4d58945fcf2d3..f947c2c128490c959c9464cb892127e4d7476d45 100644 (file)
@@ -7,7 +7,39 @@
  *
  * Licensed under GPLv2, see file LICENSE in this source tree.
  */
-#include <getopt.h>
+
+//usage:#define chcon_trivial_usage
+//usage:       "[OPTIONS] CONTEXT FILE..."
+//usage:       "\n     chcon [OPTIONS] [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE..."
+//usage:       IF_FEATURE_CHCON_LONG_OPTIONS(
+//usage:       "\n     chcon [OPTIONS] --reference=RFILE FILE..."
+//usage:       )
+//usage:#define chcon_full_usage "\n\n"
+//usage:       "Change the security context of each FILE to CONTEXT\n"
+//usage:       IF_FEATURE_CHCON_LONG_OPTIONS(
+//usage:     "\n       -v,--verbose            Verbose"
+//usage:     "\n       -c,--changes            Report changes made"
+//usage:     "\n       -h,--no-dereference     Affect symlinks instead of their targets"
+//usage:     "\n       -f,--silent,--quiet     Suppress most error messages"
+//usage:     "\n       --reference=RFILE       Use RFILE's group instead of using a CONTEXT value"
+//usage:     "\n       -u,--user=USER          Set user/role/type/range in the target"
+//usage:     "\n       -r,--role=ROLE          security context"
+//usage:     "\n       -t,--type=TYPE"
+//usage:     "\n       -l,--range=RANGE"
+//usage:     "\n       -R,--recursive          Recurse"
+//usage:       )
+//usage:       IF_NOT_FEATURE_CHCON_LONG_OPTIONS(
+//usage:     "\n       -v      Verbose"
+//usage:     "\n       -c      Report changes made"
+//usage:     "\n       -h      Affect symlinks instead of their targets"
+//usage:     "\n       -f      Suppress most error messages"
+//usage:     "\n       -u USER Set user/role/type/range in the target security context"
+//usage:     "\n       -r ROLE"
+//usage:     "\n       -t TYPE"
+//usage:     "\n       -l RNG"
+//usage:     "\n       -R      Recurse"
+//usage:       )
+
 #include <selinux/context.h>
 
 #include "libbb.h"
@@ -60,7 +92,7 @@ static int FAST_FUNC change_filedir_context(
 
        if (specified_context == NULL) {
                context = set_security_context_component(file_context,
-                                                        user, role, type, range);
+                                                       user, role, type, range);
                if (!context) {
                        bb_error_msg("can't compute security context from %s", file_context);
                        goto skip;
@@ -89,15 +121,15 @@ static int FAST_FUNC change_filedir_context(
                }
                if ((option_mask32 & OPT_VERBOSE) || ((option_mask32 & OPT_CHANHES) && !fail)) {
                        printf(!fail
-                              ? "context of %s changed to %s\n"
-                              : "can't change context of %s to %s\n",
-                              fname, context_string);
+                               ? "context of %s changed to %s\n"
+                               : "can't change context of %s to %s\n",
+                               fname, context_string);
                }
                if (!fail) {
                        rc = TRUE;
                } else if ((option_mask32 & OPT_QUIET) == 0) {
                        bb_error_msg("can't change context of %s to %s",
-                                    fname, context_string);
+                                       fname, context_string);
                }
        } else if (option_mask32 & OPT_VERBOSE) {
                printf("context of %s retained as %s\n", fname, context_string);
@@ -149,7 +181,7 @@ int chcon_main(int argc UNUSED_PARAM, char **argv)
 #if ENABLE_FEATURE_CHCON_LONG_OPTIONS
        if (option_mask32 & OPT_REFERENCE) {
                /* FIXME: lgetfilecon() should be used when '-h' is specified.
-                  But current implementation follows the original one. */
+                * But current implementation follows the original one. */
                if (getfilecon(reference_file, &specified_context) < 0)
                        bb_perror_msg_and_die("getfilecon('%s') failed", reference_file);
        } else
@@ -169,10 +201,10 @@ int chcon_main(int argc UNUSED_PARAM, char **argv)
                fname[fname_len] = '\0';
 
                if (recursive_action(fname,
-                                    1<<option_mask32 & OPT_RECURSIVE,
-                                    change_filedir_context,
-                                    change_filedir_context,
-                                    NULL, 0) != TRUE)
+                                       1<<option_mask32 & OPT_RECURSIVE,
+                                       change_filedir_context,
+                                       change_filedir_context,
+                                       NULL, 0) != TRUE)
                        errors = 1;
        }
        return errors;