blob: aa0fbca7375dfd64cb4dfb2b64bf08ca28aba288 [file] [log] [blame]
Tamir Duberstein9d9d0b72015-04-11 20:23:45 -07001#! /usr/bin/env python
temporal40ee5512008-07-10 02:12:20 +00002
3# See README.txt for information and build instructions.
4
5import addressbook_pb2
6import sys
7
cclauss7daedbd2017-08-18 01:09:14 +02008try:
9 raw_input # Python 2
10except NameError:
11 raw_input = input # Python 3
12
13
temporal40ee5512008-07-10 02:12:20 +000014# This function fills in a Person message based on user input.
15def PromptForAddress(person):
16 person.id = int(raw_input("Enter person ID number: "))
17 person.name = raw_input("Enter name: ")
18
19 email = raw_input("Enter email address (blank for none): ")
20 if email != "":
21 person.email = email
22
23 while True:
24 number = raw_input("Enter a phone number (or leave blank to finish): ")
25 if number == "":
26 break
27
Jan Tattermuschb95670f2015-07-20 14:34:27 -070028 phone_number = person.phones.add()
temporal40ee5512008-07-10 02:12:20 +000029 phone_number.number = number
30
31 type = raw_input("Is this a mobile, home, or work phone? ")
32 if type == "mobile":
33 phone_number.type = addressbook_pb2.Person.MOBILE
34 elif type == "home":
35 phone_number.type = addressbook_pb2.Person.HOME
36 elif type == "work":
37 phone_number.type = addressbook_pb2.Person.WORK
38 else:
cclauss7daedbd2017-08-18 01:09:14 +020039 print("Unknown phone type; leaving as default value.")
40
temporal40ee5512008-07-10 02:12:20 +000041
42# Main procedure: Reads the entire address book from a file,
43# adds one person based on user input, then writes it back out to the same
44# file.
45if len(sys.argv) != 2:
cclauss7daedbd2017-08-18 01:09:14 +020046 print("Usage:", sys.argv[0], "ADDRESS_BOOK_FILE")
temporal40ee5512008-07-10 02:12:20 +000047 sys.exit(-1)
48
49address_book = addressbook_pb2.AddressBook()
50
51# Read the existing address book.
52try:
Parth Kolekar21e1f1d2016-01-26 04:13:31 +053053 with open(sys.argv[1], "rb") as f:
54 address_book.ParseFromString(f.read())
temporal40ee5512008-07-10 02:12:20 +000055except IOError:
cclauss7daedbd2017-08-18 01:09:14 +020056 print(sys.argv[1] + ": File not found. Creating a new file.")
temporal40ee5512008-07-10 02:12:20 +000057
58# Add an address.
Jan Tattermuschb0e5ba62015-07-20 15:24:08 -070059PromptForAddress(address_book.people.add())
temporal40ee5512008-07-10 02:12:20 +000060
61# Write the new address book back to disk.
Parth Kolekar21e1f1d2016-01-26 04:13:31 +053062with open(sys.argv[1], "wb") as f:
63 f.write(address_book.SerializeToString())