From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.5825.1601327856614036273 for ; Mon, 28 Sep 2020 14:17:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=lrvtwLjd; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: erik.c.bjorge@intel.com) IronPort-SDR: uprIYjUav/ImReIBm1jPVQBsReBibiJVyfOwke1o3fOxNsINQnaHM3+FqDInyU8Th1uTseK48j 76BkrKyJSpCA== X-IronPort-AV: E=McAfee;i="6000,8403,9758"; a="180221192" X-IronPort-AV: E=Sophos;i="5.77,315,1596524400"; d="scan'208";a="180221192" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2020 14:17:36 -0700 IronPort-SDR: FHB3aYYRm8gLXQYd26pNNjGo76HL25AG9bwzR5g2HwgNyWPG96LEjm8bMOJKFCYSq6dT06xTY7 q9S2m8qVmeHg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,315,1596524400"; d="scan'208";a="345023899" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga002.fm.intel.com with ESMTP; 28 Sep 2020 14:17:36 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 28 Sep 2020 14:17:35 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 28 Sep 2020 14:17:35 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.108) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 28 Sep 2020 14:17:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lBDPa3ic30WnWLHTgT10c5uZKpSUACzlg0AWsRHFoXzOOKrUs4UImzZCPRXTbMrQfwfgPPHTr0sGYixnnUh4KiMPvSjIzT59VnOSem5QPu7CyQJLU9kdTifrv2PYUgMcTXXMOxWYCLbO7RuAh90peep7pSoPRdQTLVEIX/4d87UrYF8DhwRLE16VHxQako51BtGiXktt0U5Dgbvpx+elgedjXrZ2eJRrdaeEIqeTrQpFVdgw8b2fq3iuhDCp0znYNqBmIEL0cPBbU/MTyUMqPz+EF3/bXESVAqai0gvq1tygz8q6n1s0F8UcghFKom95sNc+/XVqDJHsfPSPrnUydw== 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=jzIWkJGMru2HKf8ohCYk8NzjfQN7/fSFyANT+ZEfEtU=; b=Bm5ZItz6muJ8Nvu09AthCumPwXodoB0gI2Ti8JQsIVHstXFXrfleBiM3ntfDIMUbedvf0Dd7voJsmWEvPtW3Nj21AvQ+CDfLx6IgYhhatOn1d+482azhmDGEJGItwTraedOq3EoiIC3E+tsTpOc61enbRjYH4gQrkc4gpwK1Til3nMN1YAtFbf6czhjYa9k27EiD7zjLR9P84VtsX+Hx0ZHbxAn7rY7wxycEpWDBWrEeA86JdmOdH4VeJ9T4IKGpnoWCIt7dclFsWq8YftVM+DTuoP073huyMajftZYCKaR4rZNPdt+d33IBZ2dWcGAblXV3sI0DqCjmxlTW0CVD/w== 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=jzIWkJGMru2HKf8ohCYk8NzjfQN7/fSFyANT+ZEfEtU=; b=lrvtwLjdLOGR1bBkru+6qEVnqHRfF+2V4GD8NwITn86dICcq0JZvuR7o4U/m2kqjwoNv8jHk5Z7jUW4Z4gisTdsTmrU9UNF3oleGWYdo/iB3FDzYL3sHo48HHEZ1JHPqa/JZDFnFVpGca2Qbcv09eIhy5wAHZ463xDLz1+tFh2g= Received: from MW3PR11MB4554.namprd11.prod.outlook.com (2603:10b6:303:5d::7) by MWHPR11MB1951.namprd11.prod.outlook.com (2603:10b6:300:10c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.20; Mon, 28 Sep 2020 21:17:33 +0000 Received: from MW3PR11MB4554.namprd11.prod.outlook.com ([fe80::7194:aad7:7eae:83df]) by MW3PR11MB4554.namprd11.prod.outlook.com ([fe80::7194:aad7:7eae:83df%8]) with mapi id 15.20.3412.029; Mon, 28 Sep 2020 21:17:33 +0000 From: "Bjorge, Erik C" To: "Desimone, Nathaniel L" , "devel@edk2.groups.io" CC: "Desimone, Ashley E" , "Pandya, Puja" , Bret Barkelew , "Agyeman, Prince" Subject: Re: [edk2-staging/EdkRepo] [PATCH V3 2/2] EdkRepo: Add support for subst drives Thread-Topic: [edk2-staging/EdkRepo] [PATCH V3 2/2] EdkRepo: Add support for subst drives Thread-Index: AQHWk6RoaoG8NQZD2kmFwilaY8khy6l+kjzA Date: Mon, 28 Sep 2020 21:17:32 +0000 Message-ID: References: <20200926012826.4976-1-nathaniel.l.desimone@intel.com> <20200926012826.4976-3-nathaniel.l.desimone@intel.com> In-Reply-To: <20200926012826.4976-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: 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.38.57] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 35f80e51-31d2-4c2a-348a-08d863f3ea2f x-ms-traffictypediagnostic: MWHPR11MB1951: 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: 2xB0Tl2O+G0btelLPoI7or2tZIeX9wZRRrbTzgvc8VaZYwklq67kcjx/YhlFdEyFZ81C0RewhMSA7XXPsV6U2+yLTEvJtzFJJQC3Qx3bO3kbp/IpF74OJqb1OIHxhp59vMHeGF91LMioMKvwn46aepQr8GXMs5yqI5JYJn8e+wTyRA8ziiIlsWWnqwAXymegI6bigofV6uqq8eamxMiRbQZVu+NN9aIXpu1zI71rY41KPpv4Y/FspJSU7XcFYNjs7Hij3oZH/w2f7YLx2kB/lRZM+7gbS3sg5ASkLMDKPlpgsySxFc3Wi2B6JM8/biFsUEr5kYFSwwKw/8XPXTQkEGAbhMt6j5zHR5yCcGzqm9q/TuBNdoYjkaTrt++pFESW x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW3PR11MB4554.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(346002)(366004)(39860400002)(396003)(136003)(7696005)(186003)(54906003)(110136005)(52536014)(86362001)(71200400001)(8676002)(2906002)(316002)(4326008)(5660300002)(64756008)(26005)(8936002)(33656002)(478600001)(66446008)(55016002)(66946007)(6506007)(76116006)(9686003)(66556008)(53546011)(83380400001)(107886003)(66476007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: AXmL7SXyvEdUHgX8V6ocPRMTM2w4JvFvO8oAdN+ui4xJcAGIl+5K8JPTHwggUHx3atGCIefOCysdlFl31KM9ce9suHGL8hF7+Sz/Yvhf8LY5nLOSXdIjxZL+itCNlrybEvgWfW8bNMj7qawRGvbi8oQcfhGl3DE6w6M65yzFplIj+TirNWim3utxrLSOl+3wmWKk4X6mi5pJoj9wY3KqnT3B61CQEieL6l/prgcR1Bh3lXyFaAj1e4oMP8mf0jbbSwXdQr2qnMFCq+nEvWOxpQzz7PPamOTFpYfI0ZKiMUzq5fElGyzZoPneuN7ATUov8o8hRCBLPDf7Bqkb4BWbYuOcCtzgi9YwDU6pn2mO3tQ3mwJu1w+CVJ/9fsaH0uGbKIoMNBc5HmOKmWdrbFrdMvj4PHbYsWFiOIO0mBytUc7kyx5drn0tjkGxOUMas0WnO5NMfUicJ4Pu+5mTruArJ3EaodAH+Z64uen2p2X8oQaAeAwJJ+m1a9jELq2VrRWI3rRtv2xHDB/uMVUBh5XD0xiPr1DEyZPBaVUJlkMNLrQlFypEnri+AHlqo98CpWvzG9GcfOveP1DilakiGhVDjFW6pPJ/pOdS0x3OR4kParlh/ikzCopHDugHGmMconDfeuxQ7JoMufQyTGD8Hby7ZA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW3PR11MB4554.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35f80e51-31d2-4c2a-348a-08d863f3ea2f X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2020 21:17:32.7800 (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: z58pKJPIHgGJtyQLPTBqm+3My7JanICBXtlUGXKBK7WHzKU+DMFXQYwU32/+6us1a08gFMaDJu7yKQI+zi4X7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1951 Return-Path: erik.c.bjorge@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Erik Bjorge -----Original Message----- From: Nate DeSimone =20 Sent: Friday, September 25, 2020 6:28 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 V3 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: Puja Pandya Cc: Bret Barkelew Cc: Prince Agyeman Cc: Erik Bjorge Signed-off-by: Nate DeSimone --- edkrepo/commands/clone_command.py | 8 ++++++++ edkrepo/config/config_fac= tory.py | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/edkrepo/commands/clone_command.py b/edkrepo/commands/clone_com= mand.py index f638090..8769102 100644 --- a/edkrepo/commands/clone_command.py +++ b/edkrepo/commands/clone_command.py @@ -9,6 +9,7 @@ =20 import os import shutil +import sys =20 from edkrepo.commands.edkrepo_command import EdkrepoCommand from edkrepo.= commands.edkrepo_command import SubmoduleSkipArgument, SourceManifestRepoAr= gument @@ -20,6 +21,7 @@ from edkrepo.common.edkrepo_exception import Edkre= poInvalidParametersException, 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_dict 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 +79,12 @@ class CloneComman= d(EdkrepoCommand): workspace_dir =3D os.getcwd() else: workspace_dir =3D os.path.abspath(workspace_dir) + if sys.platform =3D=3D "win32": + subst =3D get_subst_drive_dict() + drive =3D os.path.splitdrive(workspace_dir)[0][0].upper() + if drive in subst: + 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..fe69460 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_dict 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_dict() + drive =3D os.path.splitdrive(path)[0][0].upper() + if drive in subst: + 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