From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.7431.1598997530606564940 for ; Tue, 01 Sep 2020 14:58:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=fXh/M6/O; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: jaben.carsey@intel.com) IronPort-SDR: nvVHQysdFtOw1SwfizZXiFM9JFN5/bVUwaJA9JepcvhZ7gZVNZIJiBwMsc7N4nmZjZoK0YFB6b XgurOA9Ii7iA== X-IronPort-AV: E=McAfee;i="6000,8403,9731"; a="156536720" X-IronPort-AV: E=Sophos;i="5.76,380,1592895600"; d="scan'208";a="156536720" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2020 14:58:48 -0700 IronPort-SDR: wq2EMZ3uzKAm00xzGeQzi5XZ+p+4lHNRXsdGoiy9IhTOsD03b6+CDmaun1TTTpUkeT+ZL/X4vx ShRADv9/MN4g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,380,1592895600"; d="scan'208";a="331212085" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga008.jf.intel.com with ESMTP; 01 Sep 2020 14:58:48 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 1 Sep 2020 14:58:47 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 1 Sep 2020 14:58:47 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.170) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 1 Sep 2020 14:58:41 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HWrfgDIpxTKBqoalONgah1rR/1h/RghYFhCymtCq9cBwirL7NjIcewtSIcXMopmpkyG1W2WShvkLOWVFtc44uQPtcO7Tibm63kc8aCfYliFzojWHOg7/D5zSk6eJKBKvB2bAhEAn76lV6X+F6ylAj7FMX8AvR7OKS1w6LhTVKqdNA7a1daiI51ohzh8BzFmnfo5U5qr4qONP8u90JKkcdElG1+fCegeIt2Qo64rKOx/reKMppJIXugN728XT1TO0ogEM2zi7FrP7tlUKGi4B2owg4xhiCJtEydWFMugwqW2WNmPDMUHYkIliU26cQAa4z4478cWOzMBVmccBVT6xmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PKyN9t/x4LmBX7NMVykk1oapB5+Wpggfo4ZTSVX9Lko=; b=AxWWtf8uVzvx7OUa+6AnKfETfniYQqBNz95LpvjYb4KW9imRQsHfJhr5sgqSin8+QHn2a9oNKrWNGQdcsz7eJPHF3d6TH9P4a387YdHE1KeGJNLvBakdx/7BUDrOiyoV0RJTzk3RLq4aPlxB6xxQiOuaPIVxlW0UQP/dXLZApSJxsvds4qK7NEgvBwxj1CPkBylSX5e9wf482NWh0zi6Bzx5783fMCMPuFpYNTYFRG5y431NGgTmXyQa/CLB9yu2liDfFrI42jlaJaOmbRaSQw1Hx22qsB8+CpA68XkiZwFUd2rts6uHcmcHSPK7TI9+yHbKIJUrbMGXwKv2aC16Hw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PKyN9t/x4LmBX7NMVykk1oapB5+Wpggfo4ZTSVX9Lko=; b=fXh/M6/OEAPl32gOOgsoQQNMcudXYoTxNEX6+rKO+B1MVY8oWfFCu7RBEgHHNuB7bpTKDH4+AETMp7wP0vXD6rpGaAVCw7Hil6TLjImGOvURPhk5m+qwhOzQyE6bkl3iEnrcwoEuQuSxsIB1z1UNf1u15w+kKlr12KM/8S8LW/0= Received: from MW3PR11MB4620.namprd11.prod.outlook.com (2603:10b6:303:54::14) by MW3PR11MB4554.namprd11.prod.outlook.com (2603:10b6:303:5d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3326.23; Tue, 1 Sep 2020 21:58:40 +0000 Received: from MW3PR11MB4620.namprd11.prod.outlook.com ([fe80::81a7:b692:72d5:a525]) by MW3PR11MB4620.namprd11.prod.outlook.com ([fe80::81a7:b692:72d5:a525%9]) with mapi id 15.20.3326.025; Tue, 1 Sep 2020 21:58:40 +0000 From: "Carsey, Jaben" To: "devel@edk2.groups.io" , "Desimone, Nathaniel L" CC: "Desimone, Ashley E" , "Pandya, Puja" , Bret Barkelew , "Agyeman, Prince" , "Bjorge, Erik C" Subject: Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH V2 2/2] EdkRepo: Add support for subst drives Thread-Topic: [edk2-devel] [edk2-staging/EdkRepo] [PATCH V2 2/2] EdkRepo: Add support for subst drives Thread-Index: AQHWf8zjjM/fRtPMakm0BHRPjYG1iKlUVb8g Date: Tue, 1 Sep 2020 21:58:40 +0000 Message-ID: References: <20200831192744.1836-1-nathaniel.l.desimone@intel.com> <20200831192744.1836-3-nathaniel.l.desimone@intel.com> In-Reply-To: <20200831192744.1836-3-nathaniel.l.desimone@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [50.38.115.52] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8950c100-63cf-4b11-e790-08d84ec22ff1 x-ms-traffictypediagnostic: MW3PR11MB4554: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qn/xU9vlxoVknxEBeahlCOzcYZdsbRuT6P9yeV3HqnRPwBRT8JioVkRm3bMYOwBjIl/En+ASC8qaDA/WDfL35pV2aRBur5MHQc3Wamf3/AXl4X/Ik9I3by776UFhQasNnN/ldafAGRjqZmXu2VcfoHTzxtpRQuvif1T2BQ8a6GYvS0BtrhCuXoxTkeiZfMWNxsoqbfItxFnEZ1e2YPOaH7O7bIYVzRXpthoVlikIE4aMrzyJ5Spg4+kMrHNuCMX1kig+uqHq+ZZ3TLfiyM4FSPnOAKkJLWWT/gZfVOBlyJHqIK61Hzn8bQTCmd0BLMxlAeRskHkfKylqJWTmPxga9AJyW4P+vAWLfRkQNdCEqKRhMWMM/IbkU796AUwVY2cjjMFSOevhLlZ00nV/Fyogrw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW3PR11MB4620.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(346002)(366004)(39860400002)(376002)(136003)(86362001)(8936002)(966005)(33656002)(316002)(52536014)(7696005)(2906002)(186003)(6506007)(6636002)(26005)(53546011)(478600001)(5660300002)(66476007)(8676002)(55016002)(9686003)(83380400001)(54906003)(76116006)(107886003)(110136005)(4326008)(66446008)(66946007)(64756008)(71200400001)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: +tdto6Ug4w0aMmuZWVutv4W2fAQC4xyCT5y5lIUcrgLKFnqgCxxoADCQDu3f7vH3YuJFnyp54lzpMtKvHszng60jIgphoBlOhx3zEiLMuJ+UkJ+WLE0oCo8L2fAcw5xpeIMRdhkyzejyzlepml3of0Ll4EZY4s9gefgSB6LMHlAfx3ohzap9px7BCsWXDRcwvnMlWxmzirPss37TJyB+GtBfYBZvEExNuuDB3IaTHpqMmgWBzvsPbL5YLJUprZ/jQhUd8WVih8NFTP9IkpIuNWGhN6TfMCiBmIaOoExcZDO8IfyVm25x94jZ5fSW2TucC7zBw4Ib4+5BHGTxO6znYZ4P4P+RyUOaIzNahP9TAAy3HO/6ppawvhTIVUMuihYjgopoO27HFiuZmq9PyypzTVXrN0beqNjqqtw/xs6FZhsfd3xUPQkwjEZZlqvRrxTVNR2MUW73h/6mNiSYHq9GN5u18f3cdP/1OkpIF8iYjknfCZpKVfBhmxAIeuILwKbwml53kZ+pUNsawV7iYVYcRxlvRHKYd9Hqo/MMcEv9+IUKVhyU0Qgs0na1GlCg8rz9dqdzKfgZt45XoQ2VqXunlU+a/U/CTVVaQJKKU7COG9EduIqhg6T4P4yZJ0+U91OxHrVxSf/vhShz+hCmZ61YeA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW3PR11MB4620.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8950c100-63cf-4b11-e790-08d84ec22ff1 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2020 21:58:40.6127 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oNqPEg3EuXzhbfMW4Kh2boKlzNiGYLsiyvg/M4EJAQhP4xWBiSqrsaymi2UQksSsitl8ncUxXUpn1vTAc0aDPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4554 Return-Path: jaben.carsey@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Instead of looping over the dictionary, could we convert the target drive a= nd see if it's in the dictionary?=20 I am thinking like remove the : from os.path.splitdrive(workspace_dir)[0].= upper() string and see if that's in the dictionary? > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Nate > DeSimone > Sent: Monday, August 31, 2020 12:28 PM > To: devel@edk2.groups.io > Cc: Desimone, Ashley E ; Pandya, Puja > ; Bret Barkelew ; > Agyeman, Prince ; Bjorge, Erik C > > Subject: [edk2-devel] [edk2-staging/EdkRepo] [PATCH V2 2/2] EdkRepo: Add > support for subst drives >=20 > get_workspace_path() now converts a virtual drive path to a real path be= fore > any git repo operations are done. >=20 > Cc: Ashley E Desimone > Cc: Puja Pandya > Cc: Bret Barkelew > Cc: Prince Agyeman > Cc: Erik Bjorge > Signed-off-by: Nate DeSimone > --- > edkrepo/commands/clone_command.py | 6 ++++++ > edkrepo/config/config_factory.py | 10 +++++++++- > 2 files changed, 15 insertions(+), 1 deletion(-) >=20 > diff --git a/edkrepo/commands/clone_command.py > b/edkrepo/commands/clone_command.py > index f638090..be5ad86 100644 > --- a/edkrepo/commands/clone_command.py > +++ b/edkrepo/commands/clone_command.py > @@ -20,6 +20,7 @@ from edkrepo.common.edkrepo_exception import > EdkrepoInvalidParametersException, > from edkrepo.common.edkrepo_exception import > EdkrepoManifestNotFoundException from edkrepo.common.humble > import CLONE_INVALID_WORKSPACE, CLONE_INVALID_PROJECT_ARG, > CLONE_INVALID_COMBO_ARG from edkrepo.common.humble import > SPARSE_CHECKOUT, CLONE_INVALID_LOCAL_ROOTS > +from edkrepo.common.pathfix import get_subst_drive_dict > from edkrepo.common.workspace_maintenance.workspace_maintenance > import case_insensitive_single_match from > edkrepo.common.workspace_maintenance.manifest_repos_maintenance > import pull_all_manifest_repos, find_project_in_all_indices from > edkrepo.common.workspace_maintenance.manifest_repos_maintenance > import list_available_manifest_repos @@ -77,6 +78,11 @@ class > CloneCommand(EdkrepoCommand): > workspace_dir =3D os.getcwd() > else: > workspace_dir =3D os.path.abspath(workspace_dir) > + subst =3D get_subst_drive_dict() > + for drive in subst.keys(): > + if '{}:'.format(drive) =3D=3D os.path.splitdrive(workspace_= dir)[0].upper(): > + workspace_dir =3D os.path.join(subst[drive], > os.path.splitdrive(workspace_dir)[1][1:]) > + workspace_dir =3D os.path.normpath(workspace_dir) > if os.path.isdir(workspace_dir) and os.listdir(workspace_dir): > raise > EdkrepoInvalidParametersException(CLONE_INVALID_WORKSPACE) > if not os.path.isdir(workspace_dir): > diff --git a/edkrepo/config/config_factory.py > b/edkrepo/config/config_factory.py > index a82a438..1cb6eb7 100644 > --- a/edkrepo/config/config_factory.py > +++ b/edkrepo/config/config_factory.py > @@ -11,13 +11,16 @@ import os > import sys > import configparser > import collections > -from ctypes import * > +if sys.platform =3D=3D "win32": > + from ctypes import oledll, c_void_p, c_uint32, c_wchar_p > + from ctypes import create_unicode_buffer >=20 > import edkrepo.config.humble.config_factory_humble as humble from > edkrepo.common.edkrepo_exception import > EdkrepoGlobalConfigNotFoundException, EdkrepoConfigFileInvalidException > from edkrepo.common.edkrepo_exception import > EdkrepoWorkspaceInvalidException, > EdkrepoGlobalDataDirectoryNotFoundException > from edkrepo.common.edkrepo_exception import > EdkrepoConfigFileReadOnlyException > from edkrepo.common.humble import > MIRROR_PRIMARY_REPOS_MISSING, MIRROR_DECODE_WARNING, > MAX_PATCH_SET_INVALID > +from edkrepo.common.pathfix import get_subst_drive_dict > from edkrepo_manifest_parser import edk_manifest from > edkrepo.common.pathfix import expanduser >=20 > @@ -238,6 +241,11 @@ def get_workspace_path(): > while True: > if os.path.isdir(os.path.join(path, "repo")): > if os.path.isfile(os.path.join(os.path.join(path, "repo"), > "Manifest.xml")): > + if sys.platform =3D=3D "win32": > + subst =3D get_subst_drive_dict() > + for drive in subst.keys(): > + if '{}:'.format(drive) =3D=3D os.path.splitdriv= e(path)[0].upper(): > + path =3D os.path.join(subst[drive], > + os.path.splitdrive(path)[1][1:]) > return path > if os.path.dirname(path) =3D=3D path: > break > -- > 2.27.0.windows.1 >=20 >=20 >=20