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.web12.75489.1597785358599425382 for ; Tue, 18 Aug 2020 14:15:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=UbhnHsWH; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: ashley.e.desimone@intel.com) IronPort-SDR: TRRdBL3wGbjrrgiM08/MIPrgpWKYqgrDy8ru+Khy2pV/gWb8dpBCtRTbdaG4IUZRFyoqO+oRwo X2/ouOrrYStQ== X-IronPort-AV: E=McAfee;i="6000,8403,9717"; a="154269832" X-IronPort-AV: E=Sophos;i="5.76,328,1592895600"; d="scan'208";a="154269832" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Aug 2020 14:15:58 -0700 IronPort-SDR: CiSQo/+TnoVaORr0kv4t3cS771Kt6ozGEY71CNS7OTqTpRxUNN/koz4CXH6tJYY801qq8wWW37 /H3zYWdR02aw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,328,1592895600"; d="scan'208";a="310572661" Received: from fmsmsx603-2.cps.intel.com (HELO fmsmsx603.amr.corp.intel.com) ([10.18.84.213]) by orsmga002.jf.intel.com with ESMTP; 18 Aug 2020 14:15:57 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 18 Aug 2020 14:15:57 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 18 Aug 2020 14:15:57 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.106) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 18 Aug 2020 14:15:57 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M9VLjf91Xjydt7wjxT7Jl+TXzqgZe/pWnRA/gFTyeo025vbJSdOuNgRj7xh32G6IeFRB6DNvPGVJ5T6T91b8jYMCqShLYSIVciTw31T0ujzZwhJQ6GiiWbTTNJptUDtxjdmOFAHoojxJ0R2O1YPgtNIRwIvqfXj8pY2BbODDnGNQdvdvn3txuNh8XZfmDCJaR1+QzKcDoeOGUyQGwikkdJ/9nLZK2OTlUx2I1KXDJxxwCUe7pyuMtqlO/+KaSyPps9okyoO9Uda2LrIMq8kjngsXLYzhtZoXM8eGxtb4ozpCn/cW4LpE3A9HpFItADnFZhfKYbA1mx4aw6VYrEvr5Q== 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=PIz4GuCnG7ob3EKGFO1r7oggo+tS+/wvoYN47l26ZKg=; b=WoU5+bs80rqmU/DhbgH8sMKnsv3O+lv2mVgO6IAaZUSRr30k29aDX9yY8wbOvjdj0yx/1hLTLklBTDhSNmjdtvgDkrSgccxQP9zaIP+GiUhOTPfQiveS/I5H49CjALKXsi9vTpChSJG3++jh5S238MNKHTa38w1OQHPvOOWHw3G3tO4JgTIh6cmAI5sb6S1UWDLjTBeiC0/+ia4mk9zTI5PWzfbSzc0G64YmucYuqCCaiJtOJZhcISoVS5sErE16O6VOe17JWXNDlz0WjnV0BAR8uXzGjuU9zPQXmjsx1kZAxmTCEIC4vMHf8V1+wIY/CSoXuuDnboi9dfDYFBBIiA== 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=PIz4GuCnG7ob3EKGFO1r7oggo+tS+/wvoYN47l26ZKg=; b=UbhnHsWH4XJ/fUEF7i8sLV4VDSN/X31sOe+iGK6iycHRn33pD5vPE12D8mYJ2w9TxhV6k6mjl5Itu/bFP2H1DtCMHjlyBvz26R8YSSYzq0jBDGW/eHm0teVh0GuvCy3XpYrgn7qDclYzR3Io0PuYrE4Q6XKYK7utThgDBYcZwj8= Received: from BY5PR11MB3973.namprd11.prod.outlook.com (2603:10b6:a03:185::29) by BYAPR11MB3671.namprd11.prod.outlook.com (2603:10b6:a03:b3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.20; Tue, 18 Aug 2020 21:15:49 +0000 Received: from BY5PR11MB3973.namprd11.prod.outlook.com ([fe80::f586:b5a8:4b3d:1e76]) by BY5PR11MB3973.namprd11.prod.outlook.com ([fe80::f586:b5a8:4b3d:1e76%5]) with mapi id 15.20.3283.028; Tue, 18 Aug 2020 21:15:49 +0000 From: "Ashley E Desimone" To: "Desimone, Nathaniel L" , "devel@edk2.groups.io" CC: "Pandya, Puja" , Bret Barkelew , "Agyeman, Prince" , "Bjorge, Erik C" Subject: Re: [edk2-staging/EdkRepo] [PATCH V1 2/2] EdkRepo: Add support for subst drives Thread-Topic: [edk2-staging/EdkRepo] [PATCH V1 2/2] EdkRepo: Add support for subst drives Thread-Index: AQHWa7UAp38IPEfpbk6e1rGmxaAGqak+cg2w Date: Tue, 18 Aug 2020 21:15:49 +0000 Message-ID: References: <20200806054635.4809-1-nathaniel.l.desimone@intel.com> <20200806054635.4809-3-nathaniel.l.desimone@intel.com> In-Reply-To: <20200806054635.4809-3-nathaniel.l.desimone@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [50.53.190.176] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d71046b5-d7f4-4797-4afd-08d843bbe1ce x-ms-traffictypediagnostic: BYAPR11MB3671: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YTGe0oHQhWsaOth766JIWmkzrpxACVNOHZVvcjjVRX1GMwx1uKheEPxZ5e7RDvw74nClQPQemvKI6T9fcOzbfURa0VuWQoVTdEMa+drOM5Dee70+MkfYaoJWJHpv7OcoeHttnRw571H5+HAF8Kxa+NPFjIgH+5d5BmMabcZd0WgdC+3/c83dv6jzVkq/cfIGfsaUD4O+q7m7y5sEUOmbZoaPRNpND0qvgtspXs8IHU5xmh732zUT8YIU8lJ7vbBNJSSTy/3YtaiBjWeY+GdAWDrp9hE+Jg9IjhECo0WAyqupw98x2DC7/UDdoYF51r17 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR11MB3973.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(346002)(136003)(366004)(39860400002)(376002)(107886003)(7696005)(8676002)(186003)(6506007)(53546011)(54906003)(8936002)(2906002)(71200400001)(316002)(9686003)(55016002)(5660300002)(66556008)(86362001)(76116006)(64756008)(66446008)(83380400001)(110136005)(52536014)(66476007)(66946007)(33656002)(26005)(4326008)(478600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: t9KacVG1dk5eZ3BscHr2LCtB6tecFUvVvdSg4o3yTw/17pd4n8JU3bfm+qm7YZUunGXMIhInsQSCBKgNNgOmzNi9VfJTzxl9XVkz7s8sPBPN+7DkME8NcCQuVmuZ/yXh24Z+GQlHrULkPZ06uRgj0XEdu7IN0fTfoQ1nQFUpSz+nREWFzFltvmcXPhC1IXuCJ4pg93ky7p5qL7L1W2yeenLIUXHKFzD6pIWJwdNr/PyGLkC8h4dcvypLd+5aKly+VBr+Rn/3FDDQxWKmKJfKZk+LPvhJPzxT72A9mRyb2YOroV8kPtLrUpnVhxpzvnVDU17zuADtFI37ooR9gRXmSOSf2KzsJlOySFSY/pBx2IwJr46nyIvT3sjVR5LMBWu8Y6zzkRqBLb9KinUX3j1UaTervy/ErINemyCnBEUK0PY69NE9hAdoKAjOfW17y58D6bMBHTB6PD8eseLW4QnQS9Wv8Vawe/PRayJp1/O+AQlRTMTFbXH2K54c/oYfov0wOyQKFRAqSm1BCC1lZ17uJQ1hPzKDX9YIJzjO3HeleYpLoK0ebUPJ4x0pVVwlcvf5dpQQlpdpnwTOrrCTI/raFgW7B69EiyoaN3gpOx7I38ZmS84oYbzSlQWeM7iDApAA6fc9pS60Egvq5DxrQCBVcg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB3973.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d71046b5-d7f4-4797-4afd-08d843bbe1ce X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Aug 2020 21:15:49.8244 (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: HEJs6oPbYaIc6XH6FO9juhlQ2j1dzyHxc76OEYVEb84vmLQMdYokaGi1uPbvcshFVLBvs42h/mwoerPAJGxbYMJuayoGZ3EXTYmv3+2AL6g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3671 Return-Path: ashley.e.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Ashley DeSimone -----Original Message----- From: Desimone, Nathaniel L =20 Sent: Wednesday, August 5, 2020 10:47 PM To: devel@edk2.groups.io Cc: Desimone, Ashley E ; Pandya, Puja ; Bret Barkelew ; Agyeman, Prin= ce ; Bjorge, Erik C Subject: [edk2-staging/EdkRepo] [PATCH V1 2/2] EdkRepo: Add support for sub= st drives get_workspace_path() now converts a virtual drive path to a real path befor= e any git repo operations are done. Cc: Ashley E Desimone Cc: Nate 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_facto= ry.py | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/edkrepo/commands/clone_command.py b/edkrepo/commands/clone_com= mand.py index f638090..650bc81 100644 --- a/edkrepo/commands/clone_command.py +++ b/edkrepo/commands/clone_command.py @@ -20,6 +20,7 @@ from edkrepo.common.edkrepo_exception import EdkrepoInval= idParametersException, from edkrepo.common.edkrepo_exception import EdkrepoManifestNotFoundExcept= ion from edkrepo.common.humble import CLONE_INVALID_WORKSPACE, CLONE_INVAL= ID_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_list from edkrepo.common.workspace_maintenance.workspace_maintenance import cas= e_insensitive_single_match from edkrepo.common.workspace_maintenance.manif= est_repos_maintenance import pull_all_manifest_repos, find_project_in_all_i= ndices from edkrepo.common.workspace_maintenance.manifest_repos_maintenanc= e import list_available_manifest_repos @@ -77,6 +78,11 @@ class CloneComman= d(EdkrepoCommand): workspace_dir =3D os.getcwd() else: workspace_dir =3D os.path.abspath(workspace_dir) + subst =3D get_subst_drive_list() + 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.split= drive(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_WORKSPAC= E) if not os.path.isdir(workspace_dir): diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_facto= ry.py index a82a438..45ac16f 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, Edkr= epoConfigFileInvalidException from edkrepo.common.edkrepo_exception import= EdkrepoWorkspaceInvalidException, EdkrepoGlobalDataDirectoryNotFoundExcept= ion from edkrepo.common.edkrepo_exception import EdkrepoConfigFileReadOnlyExce= ption from edkrepo.common.humble import MIRROR_PRIMARY_REPOS_MISSING, MIRROR_DEC= ODE_WARNING, MAX_PATCH_SET_INVALID +from edkrepo.common.pathfix import get_subst_drive_list from edkrepo_manifest_parser import edk_manifest from edkrepo.common.path= fix 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"), "Ma= nifest.xml")): + if sys.platform =3D=3D "win32": + subst =3D get_subst_drive_list() + for drive in subst.keys(): + if '{}:'.format(drive) =3D=3D os.path.splitdrive(p= ath)[0].upper(): + path =3D os.path.join(subst[drive],=20 + os.path.splitdrive(path)[1][1:]) return path if os.path.dirname(path) =3D=3D path: break -- 2.27.0.windows.1