зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #11262 - Add `--version` flag (from campaul:add_version_flag); r=Manishearth
- [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy --faster` does not report any errors - [X] These changes fix #11241 (github issue number if applicable). Either: - [ ] There are tests for these changes OR - [ ] These changes do not require tests because _____ Not 100% sure of a good way to test this, so I'm submitting as is for feedback. Manually testing it appears to work fine. Source-Repo: https://github.com/servo/servo Source-Revision: 5478e605aef93cc384b709688cc68e3ed854a68b
This commit is contained in:
Родитель
ac2f7f10cb
Коммит
e4f50cdbe4
|
@ -40,6 +40,7 @@ use servo::Browser;
|
|||
use servo::compositing::windowing::WindowEvent;
|
||||
use servo::util::opts::{self, ArgumentParsingResult};
|
||||
use servo::util::panicking::initiate_panic_hook;
|
||||
use std::process;
|
||||
use std::rc::Rc;
|
||||
|
||||
pub mod platform {
|
||||
|
@ -102,6 +103,11 @@ fn main() {
|
|||
return servo::run_content_process(token)
|
||||
}
|
||||
|
||||
if opts::get().is_printing_version {
|
||||
println!("Servo {}{}", env!("CARGO_PKG_VERSION"), env!("GIT_INFO"));
|
||||
process::exit(0);
|
||||
}
|
||||
|
||||
let window = app::create_window(None);
|
||||
|
||||
// Our wrapper around `Browser` that also implements some
|
||||
|
|
|
@ -202,6 +202,9 @@ pub struct Opts {
|
|||
|
||||
// don't skip any backtraces on panic
|
||||
pub full_backtraces: bool,
|
||||
|
||||
/// Print the version and exit.
|
||||
pub is_printing_version: bool,
|
||||
}
|
||||
|
||||
fn print_usage(app: &str, opts: &Options) {
|
||||
|
@ -507,6 +510,7 @@ pub fn default_opts() -> Opts {
|
|||
render_api: DEFAULT_RENDER_API,
|
||||
config_dir: None,
|
||||
full_backtraces: false,
|
||||
is_printing_version: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -564,6 +568,7 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
|
|||
opts.optopt("G", "graphics", "Select graphics backend (gl or es2)", "gl");
|
||||
opts.optopt("", "config-dir",
|
||||
"config directory following xdg spec on linux platform", "");
|
||||
opts.optflag("v", "version", "Display servo version information");
|
||||
|
||||
|
||||
let opt_match = match opts.parse(args) {
|
||||
|
@ -753,6 +758,8 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
|
|||
_ => args_fail(&format!("error: graphics option must be gl or es2:")),
|
||||
};
|
||||
|
||||
let is_printing_version = opt_match.opt_present("v") || opt_match.opt_present("version");
|
||||
|
||||
let opts = Opts {
|
||||
is_running_problem_test: is_running_problem_test,
|
||||
url: Some(url),
|
||||
|
@ -807,6 +814,7 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
|
|||
use_msaa: debug_options.use_msaa,
|
||||
config_dir: opt_match.opt_str("config-dir"),
|
||||
full_backtraces: debug_options.full_backtraces,
|
||||
is_printing_version: is_printing_version,
|
||||
};
|
||||
|
||||
set_defaults(opts);
|
||||
|
|
|
@ -374,6 +374,22 @@ class CommandBase(object):
|
|||
|
||||
env['RUSTFLAGS'] = env.get('RUSTFLAGS', "") + " -W unused-extern-crates"
|
||||
|
||||
git_info = []
|
||||
if os.path.isdir('.git'):
|
||||
git_sha = subprocess.check_output([
|
||||
'git', 'rev-parse', '--short', 'HEAD'
|
||||
]).strip()
|
||||
git_is_dirty = bool(subprocess.check_output([
|
||||
'git', 'status', '--porcelain'
|
||||
]).strip())
|
||||
|
||||
git_info.append('')
|
||||
git_info.append(git_sha)
|
||||
if git_is_dirty:
|
||||
git_info.append('dirty')
|
||||
|
||||
env['GIT_INFO'] = '-'.join(git_info)
|
||||
|
||||
return env
|
||||
|
||||
def servo_crate(self):
|
||||
|
|
Загрузка…
Ссылка в новой задаче