VirtualBox

Changeset 3583 in kBuild


Ignore:
Timestamp:
Jan 6, 2023 1:36:50 AM (2 years ago)
Author:
bird
Message:

kmk_install: Shut up annoying messages about different mode preventing hard linking of a file.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/kmkbuiltin/install.c

    r3389 r3583  
    138138    int ignore_perm_errors;
    139139    int hard_link_files_when_possible;
     140    int verbose_hard_link_refusal;
     141    int verbose_hard_link_mode_mismatch;
    140142    int dos2unix;
    141143} INSTALLINSTANCE;
    142144typedef INSTALLINSTANCE *PINSTALLINSTANCE;
     145
     146enum
     147{
     148    kInstOpt_Help = 261,
     149    kInstOpt_Version,
     150    kInstOpt_Verbose,
     151    kInstOpt_Quiet,
     152    kInstOpt_IgnorePermErrors,
     153    kInstOpt_NoIgnorePermErrors,
     154    kInstOpt_HardLinkFilesWhenPossible,
     155    kInstOpt_NoHardLinkFilesWhenPossible,
     156    kInstOpt_Dos2Unix,
     157    kInstOpt_Unix2Dos,
     158    kInstOpt_VerboseHardLinkRefusal,
     159    kInstOpt_QuietHardLinkRefusal,
     160    kInstOpt_VerboseHardLinkModeMismatch,
     161    kInstOpt_QuietHardLinkModeMismatch
     162};
    143163
    144164
     
    148168static struct option long_options[] =
    149169{
    150     { "help",                                           no_argument, 0, 261 },
    151     { "version",                                        no_argument, 0, 262 },
    152     { "ignore-perm-errors",                             no_argument, 0, 263 },
    153     { "no-ignore-perm-errors",                          no_argument, 0, 264 },
    154     { "hard-link-files-when-possible",                  no_argument, 0, 265 },
    155     { "no-hard-link-files-when-possible",               no_argument, 0, 266 },
    156     { "dos2unix",                                       no_argument, 0, 267 },
    157     { "unix2dos",                                       no_argument, 0, 268 },
     170    { "help",                                           no_argument, 0, kInstOpt_Help },
     171    { "version",                                        no_argument, 0, kInstOpt_Version },
     172    { "quiet",                                          no_argument, 0, kInstOpt_Quiet },
     173    { "ignore-perm-errors",                             no_argument, 0, kInstOpt_IgnorePermErrors },
     174    { "no-ignore-perm-errors",                          no_argument, 0, kInstOpt_NoIgnorePermErrors },
     175    { "hard-link-files-when-possible",                  no_argument, 0, kInstOpt_HardLinkFilesWhenPossible },
     176    { "no-hard-link-files-when-possible",               no_argument, 0, kInstOpt_NoHardLinkFilesWhenPossible },
     177    { "verbose-hard-link-refusal",                      no_argument, 0, kInstOpt_VerboseHardLinkRefusal },
     178    { "quiet-hard-link-refusal",                        no_argument, 0, kInstOpt_QuietHardLinkRefusal },
     179    { "verbose-hard-link-mode-mismatch",                no_argument, 0, kInstOpt_VerboseHardLinkModeMismatch },
     180    { "quiet-hard-link-mode-mismatch",                  no_argument, 0, kInstOpt_QuietHardLinkModeMismatch },
     181    { "dos2unix",                                       no_argument, 0, kInstOpt_Dos2Unix },
     182    { "unix2dos",                                       no_argument, 0, kInstOpt_Unix2Dos },
     183#if 1 /* GNU coreutils compatibility: */
     184    { "compare",                                        no_argument, 0, 'C' },
     185    { "directory",                                      no_argument, 0, 'd' },
     186    { "group",                                          required_argument, 0, 'g' },
     187    { "mode",                                           required_argument, 0, 'm' },
     188    { "owner",                                          required_argument, 0, 'o' },
     189    { "strip",                                          no_argument, 0, 's' },
     190    { "suffix",                                         required_argument, 0, 'S' },
     191    { "verbose",                                        no_argument, 0, 'v' },
     192#endif
    158193    { 0, 0,     0, 0 },
    159194};
     
    204239        This.ignore_perm_errors = geteuid() != 0;
    205240        This.hard_link_files_when_possible = 0;
     241        This.verbose_hard_link_refusal = 0;
     242        This.verbose_hard_link_mode_mismatch = 0;
    206243        This.dos2unix = 0;
    207244
     
    257294                case 'S':
    258295                        This.safecopy = 1;
     296                        This.verbose_hard_link_refusal = 0;
    259297                        break;
    260298                case 's':
    261299                        This.dostrip = 1;
     300                        This.verbose_hard_link_refusal = 0;
    262301                        break;
    263302                case 'v':
     303                case kInstOpt_Verbose:
    264304                        This.verbose = 1;
    265305                        break;
    266                 case 261:
     306                case kInstOpt_Quiet:
     307                        This.verbose = 0;
     308                        break;
     309                case kInstOpt_Help:
    267310                        usage(pCtx, 0);
    268311                        return 0;
    269                 case 262:
     312                case kInstOpt_Version:
    270313                        return kbuild_version(argv[0]);
    271                 case 263:
     314                case kInstOpt_IgnorePermErrors:
    272315                        This.ignore_perm_errors = 1;
    273316                        break;
    274                 case 264:
     317                case kInstOpt_NoIgnorePermErrors:
    275318                        This.ignore_perm_errors = 0;
    276319                        break;
    277                 case 265:
     320                case kInstOpt_HardLinkFilesWhenPossible:
    278321                        This.hard_link_files_when_possible = 1;
    279322                        break;
    280                 case 266:
     323                case kInstOpt_NoHardLinkFilesWhenPossible:
    281324                        This.hard_link_files_when_possible = 0;
    282325                        break;
    283                 case 267:
     326                case kInstOpt_VerboseHardLinkRefusal:
     327                        This.verbose_hard_link_refusal = 1;
     328                        break;
     329                case kInstOpt_QuietHardLinkRefusal:
     330                        This.verbose_hard_link_refusal = 0;
     331                        break;
     332                case kInstOpt_VerboseHardLinkModeMismatch:
     333                        This.verbose_hard_link_mode_mismatch = 1;
     334                        break;
     335                case kInstOpt_QuietHardLinkModeMismatch:
     336                        This.verbose_hard_link_mode_mismatch = 0;
     337                        break;
     338                case kInstOpt_Dos2Unix:
    284339                        This.dos2unix = 1;
    285                         break;
    286                 case 268:
     340                        This.verbose_hard_link_refusal = 0;
     341                        break;
     342                case kInstOpt_Unix2Dos:
    287343                        This.dos2unix = -1;
     344                        This.verbose_hard_link_refusal = 0;
    288345                        break;
    289346                case '?':
     
    514571                } else if (pThis->mode != (from_sb.st_mode & ALLPERMS)) {
    515572# endif
    516                         kmk_builtin_ctx_printf(pThis->pCtx, 0,
    517                                 "install: warning: Not hard linking, mode differs: 0%03o, desires 0%03o\n"
    518                                 "install: src path '%s'\n"
    519                                 "install: dst path '%s'\n",
    520                                 (from_sb.st_mode & ALLPERMS), pThis->mode, from_name, to_name);
     573                        if (   pThis->verbose_hard_link_mode_mismatch
     574                            || pThis->verbose_hard_link_refusal)
     575                                kmk_builtin_ctx_printf(pThis->pCtx, 0,
     576                                        "install: warning: Not hard linking, mode differs: 0%03o, desires 0%03o\n"
     577                                        "install: src path '%s'\n"
     578                                        "install: dst path '%s'\n",
     579                                        (from_sb.st_mode & ALLPERMS), pThis->mode, from_name, to_name);
    521580                        why_not = NULL;
    522581                } else if (pThis->uid != (uid_t)-1 && pThis->uid != from_sb.st_uid) {
     
    546605                }
    547606#endif
    548                 if (pThis->verbose && why_not)
     607                if (why_not && pThis->verbose_hard_link_refusal)
    549608                    kmk_builtin_ctx_printf(pThis->pCtx, 0, "install: not hard linking '%s' to '%s' because: %s\n",
    550609                                           to_name, from_name, why_not);
     
    11231182        kmk_builtin_ctx_printf(pCtx, fIsErr,
    11241183"usage: %s [-bCcpSsv] [--[no-]hard-link-files-when-possible]\n"
    1125 "            [--[no-]ignore-perm-errors] [-B suffix] [-f flags] [-g group]\n"
    1126 "            [-m mode] [-o owner] [--dos2unix|--unix2dos] file1 file2\n"
     1184"           [--verbose-hard-link-refusal] [--verbose-hard-link-mode-mismatch]\n"
     1185"           [--[no-]ignore-perm-errors] [-B suffix] [-f flags] [-g group]\n"
     1186"           [-m mode] [-o owner] [--dos2unix|--unix2dos] file1 file2\n"
    11271187"   or: %s [-bCcpSsv] [--[no-]ignore-perm-errors] [-B suffix] [-f flags]\n"
    1128 "            [-g group] [-m mode] [-o owner] file1 ... fileN directory\n"
     1188"           [-g group] [-m mode] [-o owner] file1 ... fileN directory\n"
    11291189"   or: %s -d [-v] [-g group] [-m mode] [-o owner] directory ...\n"
    11301190"   or: %s --help\n"
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette