#! /usr/bin/python
import addressbook_pb2
import sys

# this function fils in a person message based on user #input
def PromptForAddress(person):
  person.id= int(raw_input("Enter person Id number"))
  person.name= raw_input("Enter name")

  email= raw_input("Enter email address(blank for none")
  if email!="":
    person.email=email

  while True:
     number= raw_input("Enter a phone number (Or leave blank to finishi")
     if number== "":
       break
     phone_number= person.phones.add()
     phone_number.number= number

     type = raw_input("Is this a mobile, home or work phone?")
     if type== "mobile":
       phone_number.type=addressbook_pb2.Person.MOBILE
     elif type== "home":
       phone_number.type= addressbook_pb2.Person.HOME

     elif type== "Work":
       phone_number.type= addressbook_pb2.Person.WORK

     else:
       print("Unknown phone type; leaveing as default value")

# main procedure:reads the entire address book from a file, :w

if len(sys.argv) !=2 :
  print("Usage", sys.argv[0],"ADDRESS_BOOK_FILE", sys.exit(-1))
address_book= addressbook_pb2.AddressBook()
# read the existing addres book

try:
  f= open(sys.argv[1], "rb")
  address_book.ParseFromString(f.read())
  f.close()
except IOError:
  print (sys.argv[1]+ ": could not open file . creating new one")


# Add an address 
PromptForAddress(address_book.people.add())
# Write the new address book back to disk

f= open (sys.argv[1], "wb")
f.write(address_book.SerializeToString())
f.close()

