Sha256: 7efa3a26362476998352994ef38275a6aaf5da9fe386c5b737cd7873ed0f1a44

Contents?: true

Size: 1.99 KB

Versions: 32

Compression:

Stored size: 1.99 KB

Contents

require "tmpdir"
# This module provides classes for the Makit gem.
module Makit
  # This class provide methods for working with the  Nuget package cache
  #
  # Example:
  #
  #   Makit::Directory.cache("Google.Protobuf", "3.27.2")
  #
  # dotnet nuget locals all --list
  # dotnet nuget locals all --clear
  #
  class NuGet
    def self.get_cache_dir(package, version)
      File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package, version)
    end

    def self.cache(package, version)
      # if the package is already cached, there is nothing to do
      if (!Dir.exist?(get_cache_dir(package, version)))
        Dir.mktmpdir do |dir|
          # Use the temp directory here
          Dir.chdir(dir) do
            system("dotnet new classlib -n ClassLib")
            Dir.chdir("ClassLib") do

              # display a list of directories in the current directory
              puts Dir.entries(Dir.pwd)
              # display a list of files in the current directory
              puts Dir.entries(Dir.pwd)
              puts "dotnet add ClassLib.csproj package #{package} --version #{version}"
              system("dotnet add ClassLib.csproj package #{package} --version #{version}")
            end
          end
          # The directory and its contents will be removed automatically after the block
        end
      end
    end

    def self.clear_cache(package, version)
      if (Dir.exist?(get_cache_dir(package, version)))
        FileUtils.rm_rf(get_cache_dir(package, version))
      end
    end

    # get the latest version of the package
    def self.get_latest_version(package)
      dir = File.join(Makit::Directories::NUGET_PACKAGE_CACHE, package)
      if (Dir.exist?(dir))
        versions = Dir.entries(dir).select { |entry| File.directory?(File.join(dir, entry)) && !(entry == "." || entry == "..") }
        highest_version = Makit::Version::get_highest_version(versions)
        return highest_version
      end
      nil
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
makit-0.0.61 lib/makit/nuget.rb
makit-0.0.60 lib/makit/nuget.rb
makit-0.0.59 lib/makit/nuget.rb
makit-0.0.58 lib/makit/nuget.rb
makit-0.0.56 lib/makit/nuget.rb
makit-0.0.55 lib/makit/nuget.rb
makit-0.0.54 lib/makit/nuget.rb
makit-0.0.48 lib/makit/nuget.rb
makit-0.0.40 lib/makit/nuget.rb
makit-0.0.39 lib/makit/nuget.rb
makit-0.0.38 lib/makit/nuget.rb
makit-0.0.37 lib/makit/nuget.rb
makit-0.0.36 lib/makit/nuget.rb
makit-0.0.26 lib/makit/nuget.rb
makit-0.0.25 lib/makit/nuget.rb
makit-0.0.24 lib/makit/nuget.rb
makit-0.0.23 lib/makit/nuget.rb
makit-0.0.22 lib/makit/nuget.rb
makit-0.0.21 lib/makit/nuget.rb
makit-0.0.20 lib/makit/nuget.rb