Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /chromium /src /refs/heads/main /. /tools /omahaproxy.py
blob: 27a001d2ad290425ba57c1eea8fddaeea9591b0f [file] [log] [blame]
scherkus@chromium.orge117e9a2013-01-10 01:17:18[diff] [blame]1#!/usr/bin/env python
Avi Drissmandfd880852022-09-15 20:11:09[diff] [blame]2# Copyright 2013 The Chromium Authors
scherkus@chromium.orge117e9a2013-01-10 01:17:18[diff] [blame]3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""Chrome Version Tool
7
8Scrapes Chrome channel information and prints out the requested nugget of
9information.
10"""
11
Raul Tambre26d7db42019-09-25 11:06:35[diff] [blame]12from __future__import print_function
13
scherkus@chromium.orge117e9a2013-01-10 01:17:18[diff] [blame]14import json
15import optparse
16import os
17import string
18import sys
19import urllib
20
21URL='https://omahaproxy.appspot.com/json'
22
23
24def main():
25try:
26 data= json.load(urllib.urlopen(URL))
27exceptExceptionas e:
Raul Tambre26d7db42019-09-25 11:06:35[diff] [blame]28print('Error: could not load %s\n\n%s'%(URL, str(e)))
scherkus@chromium.orge117e9a2013-01-10 01:17:18[diff] [blame]29return1
30
31# Iterate to find out valid values for OS, channel, and field options.
32 oses= set()
33 channels= set()
34 fields= set()
35
36for os_versionsin data:
37 oses.add(os_versions['os'])
38
39for versionin os_versions['versions']:
40for fieldin version:
41if field=='channel':
42 channels.add(version['channel'])
43else:
44 fields.add(field)
45
46 oses= sorted(oses)
47 channels= sorted(channels)
48 fields= sorted(fields)
49
50# Command line parsing fun begins!
51 usage=('%prog [options]\n'
52'Print out information about a particular Chrome channel.')
53 parser= optparse.OptionParser(usage=usage)
54
55 parser.add_option('-o','--os',
56 choices=oses,
57 default='win',
58 help='The operating system of interest: %s '
59'[default: %%default]'%', '.join(oses))
60 parser.add_option('-c','--channel',
61 choices=channels,
62 default='stable',
63 help='The channel of interest: %s '
64'[default: %%default]'%', '.join(channels))
65 parser.add_option('-f','--field',
66 choices=fields,
67 default='version',
68 help='The field of interest: %s '
69'[default: %%default] '%', '.join(fields))
70(opts, args)= parser.parse_args()
71
72# Print out requested data if available.
73for os_versionsin data:
74if os_versions['os']!= opts.os:
75continue
76
77for versionin os_versions['versions']:
78if version['channel']!= opts.channel:
79continue
80
81if opts.fieldnotin version:
82continue
83
Raul Tambre26d7db42019-09-25 11:06:35[diff] [blame]84print(version[opts.field])
scherkus@chromium.orge117e9a2013-01-10 01:17:18[diff] [blame]85return0
86
Raul Tambre26d7db42019-09-25 11:06:35[diff] [blame]87print('Error: unable to find %s for Chrome %s %s.'%(opts.field, opts.os,
88 opts.channel))
scherkus@chromium.orge117e9a2013-01-10 01:17:18[diff] [blame]89return1
90
91if __name__=='__main__':
92 sys.exit(main())

[8]ページ先頭

©2009-2025 Movatter.jp