Skip to content

Commit ba74a6e

Browse files
v-imohammadkshyjuryanski44
authored
HF 4.0.5907 Tag and adding (#3773) (#3797) commit to branch" (#3812)
* Setting executable permissions for `in-proc8/func` executable in install code path. (#3797) * Fix Issue 3594: Look for csproj and fsproj non-recursively (#3773) * add searchOption parameter to GetFiles to allow for non-recursive searching use non-recursive searching when looking for .csproj and .fsproj files during validation. --------- Co-authored-by: Shyju Krishnankutty <[email protected]> Co-authored-by: Ryan Adams <[email protected]>
1 parent 6b9a1c0 commit ba74a6e

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/Azure.Functions.Cli/Common/FileSystemHelpers.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ bool preCondition(string file)
158158
}
159159
}
160160

161-
internal static IEnumerable<string> GetFiles(string directoryPath, IEnumerable<string> excludedDirectories = null, IEnumerable<string> excludedFiles = null, string searchPattern = "*")
161+
internal static IEnumerable<string> GetFiles(string directoryPath, IEnumerable<string> excludedDirectories = null, IEnumerable<string> excludedFiles = null, string searchPattern = "*", SearchOption searchOption = SearchOption.AllDirectories)
162162
{
163163
foreach (var file in Instance.Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly))
164164
{
@@ -170,13 +170,18 @@ internal static IEnumerable<string> GetFiles(string directoryPath, IEnumerable<s
170170
}
171171
}
172172

173+
if (searchOption == SearchOption.TopDirectoryOnly)
174+
{
175+
yield break;
176+
}
177+
173178
foreach (var directory in Instance.Directory.GetDirectories(directoryPath, "*", SearchOption.TopDirectoryOnly))
174179
{
175180
var directoryName = Path.GetFileName(directory);
176181
if (excludedDirectories == null ||
177182
!excludedDirectories.Any(d => d.Equals(directoryName, StringComparison.OrdinalIgnoreCase)))
178183
{
179-
foreach (var file in GetFiles(directory, excludedDirectories, excludedFiles, searchPattern))
184+
foreach (var file in GetFiles(directory, excludedDirectories, excludedFiles, searchPattern, searchOption))
180185
{
181186
yield return file;
182187
}

src/Azure.Functions.Cli/Helpers/DotnetHelpers.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,9 @@ internal static IEnumerable<string> GetTemplates(WorkerRuntime workerRuntime)
155155
public static bool CanDotnetBuild()
156156
{
157157
EnsureDotnet();
158-
var csProjFiles = FileSystemHelpers.GetFiles(Environment.CurrentDirectory, searchPattern: "*.csproj").ToList();
159-
var fsProjFiles = FileSystemHelpers.GetFiles(Environment.CurrentDirectory, searchPattern: "*.fsproj").ToList();
158+
// dotnet build will only search for .csproj files within the current directory (when no .csproj file is passed), so we limit our search to that directory only
159+
var csProjFiles = FileSystemHelpers.GetFiles(Environment.CurrentDirectory, searchPattern: "*.csproj", searchOption: SearchOption.TopDirectoryOnly).ToList();
160+
var fsProjFiles = FileSystemHelpers.GetFiles(Environment.CurrentDirectory, searchPattern: "*.fsproj", searchOption: SearchOption.TopDirectoryOnly).ToList();
160161
// If the project name is extensions only then is extensions.csproj a valid csproj file
161162
if (!Path.GetFileName(Environment.CurrentDirectory).Equals("extensions"))
162163
{

src/Azure.Functions.Cli/npm/lib/install.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ https.get(options, response => {
9898
if (os.platform() === 'linux' || os.platform() === 'darwin') {
9999
fs.chmodSync(`${installPath}/func`, 0o755);
100100
fs.chmodSync(`${installPath}/gozip`, 0o755);
101+
fs.chmodSync(`${installPath}/in-proc8/func`, 0o755);
101102
}
102103
});
103104
});

0 commit comments

Comments
 (0)