#!python

"""vls:  list the contents of a voSpace"""
import vos
from vos.commonparser import CommonParser
import logging
import os,sys
from vos import vos, __version__

usage="""
  vln vos:VOSpaceSource vos:VOSpaceTarget
  

examples:  

vln vos:vospace/junk.txt vos:vospace/linkToJunk.txt
vln vos:vospace/directory vos:vospace/linkToDirectory
vln http://external.data.source vos:vospace/linkToExternalDataSource

 Version: %s """ % (__version__.version)


parser=CommonParser(usage)

if len(sys.argv) == 1:
    parser.print_help()
    sys.exit()

(opt,args)=parser.parse_args()
parser.process_informational_options()

logger = logging.getLogger()
logger.setLevel(parser.log_level)
logger.addHandler(logging.StreamHandler())

if len(args) !=  2:
    parser.error("You must specifiy a source file and a target file")
    sys.exit(-1)

if args[1][0:4] != "vos:":
    parser.error("The target to source must be in vospace")
    sys.exit(-1)

logger.debug("Connecting to vospace using certificate %s" % (opt.certfile))

try:
    vos=vos.Client(vospace_certfile=opt.certfile,vospace_token=opt.token)
except Exception as e:
    logger.error("Conneciton failed:  %s" %  (str(e)))
    sys.exit(-1)

try:
    vos.link(args[0],args[1])
except Exception as e:
    logger.error("Failed to make link from %s to %s" % ( args[0], args[1]))
    logger.error(getattr(e,'strerror','Unkown Error'))
    sys.exit(-1)

