Class: Makit::DotNet::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/makit/dotnet/cli.rb

Class Method Summary collapse

Class Method Details

.generate_docsObject

generate docs/DotNet.md



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/makit/dotnet/cli.rb', line 36

def self.generate_docs
  content = "# DotNet\n\n"
  content += "## Projects\n\n"
  # scan for .csproj files in src directory
  src_projects = Dir.glob("src/**/*.csproj")
  src_projects.each do |project_path|
    File.basename(project_path, ".csproj")
    # "dotnet tool update --global dotnet-aspnet-codegenerator".run
    # "dotnet aspnet-codegenerator controller --name #{project_name}Controller --output ~/Projects/makit/src/makit/Controllers --controllerName #{project_name}Controller --useAsyncActions --relativeFolderPath Controllers".run
  end
  content += "## Packages\n\n"
  # scan for packages.config files in src directory
  src_packages = Dir.glob("src/**/packages.config")
  src_packages.each do |packages_path|
    File.basename(packages_path, ".packages.config")
  end
  content += "## References\n\n"
  # scan for project.json files in src directory
  src_references = Dir.glob("src/**/project.json")
  src_references.each do |references_path|
    File.basename(references_path, ".project.json")
  end

  # write content to docs/DotNet.md file
  if File.exist?("docs/DotNet.md")
    existing_content = File.read("docs/DotNet.md")
    File.write("docs/DotNet.md", content) if existing_content != content
  else
    File.write("docs/DotNet.md", content)
  end
end

.is_installed?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/makit/dotnet/cli.rb', line 6

def self.is_installed?
  File.exist?(Makit::Environment.which("dotnet"))
end

.new_solution(name) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/makit/dotnet/cli.rb', line 10

def self.new_solution(name)
  if File.exist? "#{name}.sln"
    # puts "Solution #{name}.sln already exists".colorize(:yellow)
  else
    "dotnet new sln --name #{name}".run
  end
end

.sln_add_projects(sln_name) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/makit/dotnet/cli.rb', line 18

def self.sln_add_projects(sln_name)
  raise "Solution #{sln_name}.sln does not exist" unless File.exist? "#{sln_name}.sln"

  sln_path = "#{sln_name}.sln"
  sln_content = File.read(sln_path)
  Dir.glob("**/*.csproj").each do |project_path|
    project_name = File.basename(project_path, ".csproj")
    if sln_content.include?("\"#{project_name}\"")
      # puts "  #{project_name}".colorize(:green) + " is in ".colorize(:grey) + "#{sln_path}".colorize(:green)
    else
      "dotnet sln #{sln_path} add #{project_path}".run
    end
  end
end