Hex Artifact Content
Not logged in

Artifact 6bdfba033ffff72058a21d583f1a1b5ba1c485db:


0000: 75 73 65 20 63 61 72 67 6f 3a 3a 63 6f 72 65 3a  use cargo::core:
0010: 3a 57 6f 72 6b 73 70 61 63 65 3b 0a 75 73 65 20  :Workspace;.use 
0020: 63 61 72 67 6f 3a 3a 6f 70 73 3b 0a 75 73 65 20  cargo::ops;.use 
0030: 63 61 72 67 6f 3a 3a 75 74 69 6c 3a 3a 7b 43 6c  cargo::util::{Cl
0040: 69 52 65 73 75 6c 74 2c 20 43 6f 6e 66 69 67 7d  iResult, Config}
0050: 3b 0a 75 73 65 20 63 61 72 67 6f 3a 3a 75 74 69  ;.use cargo::uti
0060: 6c 3a 3a 69 6d 70 6f 72 74 61 6e 74 5f 70 61 74  l::important_pat
0070: 68 73 3a 3a 66 69 6e 64 5f 72 6f 6f 74 5f 6d 61  hs::find_root_ma
0080: 6e 69 66 65 73 74 5f 66 6f 72 5f 77 64 3b 0a 0a  nifest_for_wd;..
0090: 23 5b 64 65 72 69 76 65 28 52 75 73 74 63 44 65  #[derive(RustcDe
00a0: 63 6f 64 61 62 6c 65 29 5d 0a 70 75 62 20 73 74  codable)].pub st
00b0: 72 75 63 74 20 4f 70 74 69 6f 6e 73 20 7b 0a 20  ruct Options {. 
00c0: 20 20 20 66 6c 61 67 5f 76 65 72 62 6f 73 65 3a     flag_verbose:
00d0: 20 75 33 32 2c 0a 20 20 20 20 66 6c 61 67 5f 71   u32,.    flag_q
00e0: 75 69 65 74 3a 20 4f 70 74 69 6f 6e 3c 62 6f 6f  uiet: Option<boo
00f0: 6c 3e 2c 0a 20 20 20 20 66 6c 61 67 5f 63 6f 6c  l>,.    flag_col
0100: 6f 72 3a 20 4f 70 74 69 6f 6e 3c 53 74 72 69 6e  or: Option<Strin
0110: 67 3e 2c 0a 20 20 20 20 66 6c 61 67 5f 6d 61 6e  g>,.    flag_man
0120: 69 66 65 73 74 5f 70 61 74 68 3a 20 4f 70 74 69  ifest_path: Opti
0130: 6f 6e 3c 53 74 72 69 6e 67 3e 2c 0a 20 20 20 20  on<String>,.    
0140: 66 6c 61 67 5f 6e 6f 5f 76 65 72 69 66 79 3a 20  flag_no_verify: 
0150: 62 6f 6f 6c 2c 0a 20 20 20 20 66 6c 61 67 5f 6e  bool,.    flag_n
0160: 6f 5f 6d 65 74 61 64 61 74 61 3a 20 62 6f 6f 6c  o_metadata: bool
0170: 2c 0a 20 20 20 20 66 6c 61 67 5f 6c 69 73 74 3a  ,.    flag_list:
0180: 20 62 6f 6f 6c 2c 0a 20 20 20 20 66 6c 61 67 5f   bool,.    flag_
0190: 61 6c 6c 6f 77 5f 64 69 72 74 79 3a 20 62 6f 6f  allow_dirty: boo
01a0: 6c 2c 0a 20 20 20 20 66 6c 61 67 5f 6a 6f 62 73  l,.    flag_jobs
01b0: 3a 20 4f 70 74 69 6f 6e 3c 75 33 32 3e 2c 0a 20  : Option<u32>,. 
01c0: 20 20 20 66 6c 61 67 5f 66 72 6f 7a 65 6e 3a 20     flag_frozen: 
01d0: 62 6f 6f 6c 2c 0a 20 20 20 20 66 6c 61 67 5f 6c  bool,.    flag_l
01e0: 6f 63 6b 65 64 3a 20 62 6f 6f 6c 2c 0a 7d 0a 0a  ocked: bool,.}..
01f0: 70 75 62 20 63 6f 6e 73 74 20 55 53 41 47 45 3a  pub const USAGE:
0200: 20 26 27 73 74 61 74 69 63 20 73 74 72 20 3d 20   &'static str = 
0210: 22 0a 41 73 73 65 6d 62 6c 65 20 74 68 65 20 6c  ".Assemble the l
0220: 6f 63 61 6c 20 70 61 63 6b 61 67 65 20 69 6e 74  ocal package int
0230: 6f 20 61 20 64 69 73 74 72 69 62 75 74 61 62 6c  o a distributabl
0240: 65 20 74 61 72 62 61 6c 6c 0a 0a 55 73 61 67 65  e tarball..Usage
0250: 3a 0a 20 20 20 20 63 61 72 67 6f 20 70 61 63 6b  :.    cargo pack
0260: 61 67 65 20 5b 6f 70 74 69 6f 6e 73 5d 0a 0a 4f  age [options]..O
0270: 70 74 69 6f 6e 73 3a 0a 20 20 20 20 2d 68 2c 20  ptions:.    -h, 
0280: 2d 2d 68 65 6c 70 20 20 20 20 20 20 20 20 20 20  --help          
0290: 20 20 20 20 50 72 69 6e 74 20 74 68 69 73 20 6d      Print this m
02a0: 65 73 73 61 67 65 0a 20 20 20 20 2d 6c 2c 20 2d  essage.    -l, -
02b0: 2d 6c 69 73 74 20 20 20 20 20 20 20 20 20 20 20  -list           
02c0: 20 20 20 50 72 69 6e 74 20 66 69 6c 65 73 20 69     Print files i
02d0: 6e 63 6c 75 64 65 64 20 69 6e 20 61 20 70 61 63  ncluded in a pac
02e0: 6b 61 67 65 20 77 69 74 68 6f 75 74 20 6d 61 6b  kage without mak
02f0: 69 6e 67 20 6f 6e 65 0a 20 20 20 20 2d 2d 6e 6f  ing one.    --no
0300: 2d 76 65 72 69 66 79 20 20 20 20 20 20 20 20 20  -verify         
0310: 20 20 20 20 44 6f 6e 27 74 20 76 65 72 69 66 79      Don't verify
0320: 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 62 79   the contents by
0330: 20 62 75 69 6c 64 69 6e 67 20 74 68 65 6d 0a 20   building them. 
0340: 20 20 20 2d 2d 6e 6f 2d 6d 65 74 61 64 61 74 61     --no-metadata
0350: 20 20 20 20 20 20 20 20 20 20 20 49 67 6e 6f 72             Ignor
0360: 65 20 77 61 72 6e 69 6e 67 73 20 61 62 6f 75 74  e warnings about
0370: 20 61 20 6c 61 63 6b 20 6f 66 20 68 75 6d 61 6e   a lack of human
0380: 2d 75 73 61 62 6c 65 20 6d 65 74 61 64 61 74 61  -usable metadata
0390: 0a 20 20 20 20 2d 2d 61 6c 6c 6f 77 2d 64 69 72  .    --allow-dir
03a0: 74 79 20 20 20 20 20 20 20 20 20 20 20 41 6c 6c  ty           All
03b0: 6f 77 20 64 69 72 74 79 20 77 6f 72 6b 69 6e 67  ow dirty working
03c0: 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20   directories to 
03d0: 62 65 20 70 61 63 6b 61 67 65 64 0a 20 20 20 20  be packaged.    
03e0: 2d 2d 6d 61 6e 69 66 65 73 74 2d 70 61 74 68 20  --manifest-path 
03f0: 50 41 54 48 20 20 20 20 50 61 74 68 20 74 6f 20  PATH    Path to 
0400: 74 68 65 20 6d 61 6e 69 66 65 73 74 20 74 6f 20  the manifest to 
0410: 63 6f 6d 70 69 6c 65 0a 20 20 20 20 2d 6a 20 4e  compile.    -j N
0420: 2c 20 2d 2d 6a 6f 62 73 20 4e 20 20 20 20 20 20  , --jobs N      
0430: 20 20 20 20 4e 75 6d 62 65 72 20 6f 66 20 70 61      Number of pa
0440: 72 61 6c 6c 65 6c 20 6a 6f 62 73 2c 20 64 65 66  rallel jobs, def
0450: 61 75 6c 74 73 20 74 6f 20 23 20 6f 66 20 43 50  aults to # of CP
0460: 55 73 0a 20 20 20 20 2d 76 2c 20 2d 2d 76 65 72  Us.    -v, --ver
0470: 62 6f 73 65 20 2e 2e 2e 20 20 20 20 20 20 20 55  bose ...       U
0480: 73 65 20 76 65 72 62 6f 73 65 20 6f 75 74 70 75  se verbose outpu
0490: 74 20 28 2d 76 76 20 76 65 72 79 20 76 65 72 62  t (-vv very verb
04a0: 6f 73 65 2f 62 75 69 6c 64 2e 72 73 20 6f 75 74  ose/build.rs out
04b0: 70 75 74 29 0a 20 20 20 20 2d 71 2c 20 2d 2d 71  put).    -q, --q
04c0: 75 69 65 74 20 20 20 20 20 20 20 20 20 20 20 20  uiet            
04d0: 20 4e 6f 20 6f 75 74 70 75 74 20 70 72 69 6e 74   No output print
04e0: 65 64 20 74 6f 20 73 74 64 6f 75 74 0a 20 20 20  ed to stdout.   
04f0: 20 2d 2d 63 6f 6c 6f 72 20 57 48 45 4e 20 20 20   --color WHEN   
0500: 20 20 20 20 20 20 20 20 20 43 6f 6c 6f 72 69 6e           Colorin
0510: 67 3a 20 61 75 74 6f 2c 20 61 6c 77 61 79 73 2c  g: auto, always,
0520: 20 6e 65 76 65 72 0a 20 20 20 20 2d 2d 66 72 6f   never.    --fro
0530: 7a 65 6e 20 20 20 20 20 20 20 20 20 20 20 20 20  zen             
0540: 20 20 20 52 65 71 75 69 72 65 20 43 61 72 67 6f     Require Cargo
0550: 2e 6c 6f 63 6b 20 61 6e 64 20 63 61 63 68 65 20  .lock and cache 
0560: 61 72 65 20 75 70 20 74 6f 20 64 61 74 65 0a 20  are up to date. 
0570: 20 20 20 2d 2d 6c 6f 63 6b 65 64 20 20 20 20 20     --locked     
0580: 20 20 20 20 20 20 20 20 20 20 20 52 65 71 75 69             Requi
0590: 72 65 20 43 61 72 67 6f 2e 6c 6f 63 6b 20 69 73  re Cargo.lock is
05a0: 20 75 70 20 74 6f 20 64 61 74 65 0a 22 3b 0a 0a   up to date.";..
05b0: 70 75 62 20 66 6e 20 65 78 65 63 75 74 65 28 6f  pub fn execute(o
05c0: 70 74 69 6f 6e 73 3a 20 4f 70 74 69 6f 6e 73 2c  ptions: Options,
05d0: 20 63 6f 6e 66 69 67 3a 20 26 43 6f 6e 66 69 67   config: &Config
05e0: 29 20 2d 3e 20 43 6c 69 52 65 73 75 6c 74 20 7b  ) -> CliResult {
05f0: 0a 20 20 20 20 63 6f 6e 66 69 67 2e 63 6f 6e 66  .    config.conf
0600: 69 67 75 72 65 28 6f 70 74 69 6f 6e 73 2e 66 6c  igure(options.fl
0610: 61 67 5f 76 65 72 62 6f 73 65 2c 0a 20 20 20 20  ag_verbose,.    
0620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0630: 20 6f 70 74 69 6f 6e 73 2e 66 6c 61 67 5f 71 75   options.flag_qu
0640: 69 65 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20  iet,.           
0650: 20 20 20 20 20 20 20 20 20 20 26 6f 70 74 69 6f            &optio
0660: 6e 73 2e 66 6c 61 67 5f 63 6f 6c 6f 72 2c 0a 20  ns.flag_color,. 
0670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0680: 20 20 20 20 6f 70 74 69 6f 6e 73 2e 66 6c 61 67      options.flag
0690: 5f 66 72 6f 7a 65 6e 2c 0a 20 20 20 20 20 20 20  _frozen,.       
06a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70                op
06b0: 74 69 6f 6e 73 2e 66 6c 61 67 5f 6c 6f 63 6b 65  tions.flag_locke
06c0: 64 29 3f 3b 0a 20 20 20 20 6c 65 74 20 72 6f 6f  d)?;.    let roo
06d0: 74 20 3d 20 66 69 6e 64 5f 72 6f 6f 74 5f 6d 61  t = find_root_ma
06e0: 6e 69 66 65 73 74 5f 66 6f 72 5f 77 64 28 6f 70  nifest_for_wd(op
06f0: 74 69 6f 6e 73 2e 66 6c 61 67 5f 6d 61 6e 69 66  tions.flag_manif
0700: 65 73 74 5f 70 61 74 68 2c 20 63 6f 6e 66 69 67  est_path, config
0710: 2e 63 77 64 28 29 29 3f 3b 0a 20 20 20 20 6c 65  .cwd())?;.    le
0720: 74 20 77 73 20 3d 20 57 6f 72 6b 73 70 61 63 65  t ws = Workspace
0730: 3a 3a 6e 65 77 28 26 72 6f 6f 74 2c 20 63 6f 6e  ::new(&root, con
0740: 66 69 67 29 3f 3b 0a 20 20 20 20 6f 70 73 3a 3a  fig)?;.    ops::
0750: 70 61 63 6b 61 67 65 28 26 77 73 2c 20 26 6f 70  package(&ws, &op
0760: 73 3a 3a 50 61 63 6b 61 67 65 4f 70 74 73 20 7b  s::PackageOpts {
0770: 0a 20 20 20 20 20 20 20 20 63 6f 6e 66 69 67 3a  .        config:
0780: 20 63 6f 6e 66 69 67 2c 0a 20 20 20 20 20 20 20   config,.       
0790: 20 76 65 72 69 66 79 3a 20 21 6f 70 74 69 6f 6e   verify: !option
07a0: 73 2e 66 6c 61 67 5f 6e 6f 5f 76 65 72 69 66 79  s.flag_no_verify
07b0: 2c 0a 20 20 20 20 20 20 20 20 6c 69 73 74 3a 20  ,.        list: 
07c0: 6f 70 74 69 6f 6e 73 2e 66 6c 61 67 5f 6c 69 73  options.flag_lis
07d0: 74 2c 0a 20 20 20 20 20 20 20 20 63 68 65 63 6b  t,.        check
07e0: 5f 6d 65 74 61 64 61 74 61 3a 20 21 6f 70 74 69  _metadata: !opti
07f0: 6f 6e 73 2e 66 6c 61 67 5f 6e 6f 5f 6d 65 74 61  ons.flag_no_meta
0800: 64 61 74 61 2c 0a 20 20 20 20 20 20 20 20 61 6c  data,.        al
0810: 6c 6f 77 5f 64 69 72 74 79 3a 20 6f 70 74 69 6f  low_dirty: optio
0820: 6e 73 2e 66 6c 61 67 5f 61 6c 6c 6f 77 5f 64 69  ns.flag_allow_di
0830: 72 74 79 2c 0a 20 20 20 20 20 20 20 20 6a 6f 62  rty,.        job
0840: 73 3a 20 6f 70 74 69 6f 6e 73 2e 66 6c 61 67 5f  s: options.flag_
0850: 6a 6f 62 73 2c 0a 20 20 20 20 7d 29 3f 3b 0a 20  jobs,.    })?;. 
0860: 20 20 20 4f 6b 28 28 29 29 0a 7d 0a                 Ok(()).}.