#!/usr/bin/env python3
#
# Copyright (C) 2013-2016 DNAnexus, Inc.
#
# This file is part of dx-toolkit (DNAnexus platform client libraries).
#
#   Licensed under the Apache License, Version 2.0 (the "License"); you may not
#   use this file except in compliance with the License. You may obtain a copy
#   of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#   License for the specific language governing permissions and limitations
#   under the License.

import sys, json, argparse

parser = argparse.ArgumentParser(description='Parse a dxlink JSON hash into an object ID or project:object-id tuple')
parser.add_argument('dxlink', help='Link to parse')
parser.add_argument('--no-project', help='Ignore project ID in an extended dxlink - just print the object ID', action='store_true')
args = parser.parse_args()

try:
    link = json.loads(args.dxlink)['$dnanexus_link']
except KeyError:
    parser.exit("Unable to parse link: no $dnanexus_link key")
except ValueError:
    parser.exit("Unable to parse link as JSON")

if isinstance(link, dict):
    if args.no_project:
        print(link['id'])
    else:
        print("{proj}:{obj}".format(proj=link['project'], obj=link['id']))
else:
    print(link)
