Sha256: 90e0065dc20c619a561b5a50c331df96cf815bcda3659c12ea383944a085644a
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
# frozen_string_literal: true module Manifold # CLI provides command line interface functionality # for creating and managing umbrella projects for data management. class CLI < Thor attr_accessor :logger, :bq_service def initialize(*args, logger: Logger.new($stdout)) super(*args) self.logger = logger logger.level = Logger::INFO self.bq_service = Services::BigQueryService.new(logger) end desc "init NAME", "Generate a new umbrella project for data management" def init(name) Manifold::API::Project.create(name) logger.info "Created umbrella project '#{name}' with projects and vectors directories." end desc "vectors SUBCOMMAND ...ARGS", "Manage vectors" subcommand "vectors", Class.new(Thor) { namespace :vectors attr_accessor :logger def initialize(*args, logger: Logger.new($stdout)) super(*args) self.logger = logger end desc "add VECTOR_NAME", "Add a new vector configuration" def add(name, project: API::Project.new(File.basename(Dir.getwd))) vector = API::Vector.new(name, project: project) vector.add logger.info "Created vector configuration for '#{name}'." end } desc "add WORKSPACE_NAME", "Add a new workspace to a project" def add(name, project: API::Project.new(File.basename(Dir.getwd))) workspace = API::Workspace.new(name, project: project) workspace.add logger.info "Added workspace '#{name}' with tables and routines directories." end desc "generate PROJECT_NAME SERVICE", "Generate services for a project" def generate(project_name, service) case service when "bq" bq_service.generate_dimensions_schema(project_name) else logger.error("Unsupported service: #{service}") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
manifold-cli-0.0.7 | lib/manifold/cli.rb |