label_weaver 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/label_weaver.gemspec +1 -1
- data/lib/label_weaver/cli/actions/develop/start.rb +1 -1
- data/lib/label_weaver/cli/actions/print_configuration.rb +17 -0
- data/lib/label_weaver/cli/shell.rb +1 -0
- data/lib/label_weaver/configuration/contract.rb +1 -0
- data/lib/label_weaver/configuration/defaults.yml +11 -0
- data/lib/label_weaver/configuration/model.rb +2 -1
- data/lib/label_weaver/container.rb +5 -1
- data/lib/label_weaver/temp_repo.rb +6 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0e81d732a25f3c7ed75a3c975633aefcefe0ba5b0c6c33fbb2565d31469e3f4
|
4
|
+
data.tar.gz: c90c1d33620e1b5c76aac616db225c431fe350f0a2a7cd935a6e77d29b6e4af9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02ebb42b5c87d1ad2e4a5eeadb0d7baf731566144f0296b853345fbe83d292083fa5b1ff7f63ac07a9538bca53bf247aa0732d7f3306a92153382a8c0ae956c7
|
7
|
+
data.tar.gz: 78c68d51a19bfc52cc16993bf02b758f5759027f90044d066818a742c541bf45cc7106b0563b0365ff54ee8d6effa2daafa2acbb3ab110b2166037bb408df11c
|
data/label_weaver.gemspec
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
module LabelWeaver
|
2
|
+
module CLI
|
3
|
+
module Actions
|
4
|
+
class PrintConfiguration < Sod::Action
|
5
|
+
include Import[:logger, :configuration]
|
6
|
+
|
7
|
+
on "--print-configuration"
|
8
|
+
|
9
|
+
description "Prints out the currently active configuration after evaluation"
|
10
|
+
|
11
|
+
def call(*)
|
12
|
+
puts JSON.pretty_generate(configuration.to_h)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -26,6 +26,7 @@ module LabelWeaver
|
|
26
26
|
dsl.new :label_weaver, banner: specification.banner do
|
27
27
|
on(::LabelWeaver::CLI::Actions::Init, context:)
|
28
28
|
on(::LabelWeaver::CLI::Actions::PrepareBaseProject, context:)
|
29
|
+
on(::LabelWeaver::CLI::Actions::PrintConfiguration, context:)
|
29
30
|
on(::LabelWeaver::CLI::Commands::Develop, context:)
|
30
31
|
on(::LabelWeaver::CLI::Commands::Diff, context:)
|
31
32
|
on(Sod::Prefabs::Actions::Version, context:)
|
@@ -9,6 +9,7 @@ module LabelWeaver
|
|
9
9
|
required(:repository).filled(:string)
|
10
10
|
required(:branch).filled(:string)
|
11
11
|
end
|
12
|
+
optional(:always_clone).filled(:bool)
|
12
13
|
optional(:excluded_upstream_files).array(:string)
|
13
14
|
optional(:forced_upstream_files).array(:string)
|
14
15
|
optional(:hooks).hash do
|
@@ -1,7 +1,18 @@
|
|
1
|
+
# This is the main configuration file for label_weaver in your project.
|
2
|
+
# It is parsed as ERb, feel free to use e.g. environment variables like
|
3
|
+
# "<%= ENV['BRANCH_NAME'] %>" or conditionals.
|
4
|
+
# The result still has to be valid YAML though.
|
5
|
+
|
1
6
|
git:
|
2
7
|
repository: "git@gitlab.com:lopo-tech/label_weaver.git"
|
3
8
|
branch: "main"
|
4
9
|
|
10
|
+
# If set to +true+, the upstream repository is always cloned
|
11
|
+
# instead of the newest changes being pulled for an already cloned repository.
|
12
|
+
# This is useful if you change the upstream branch a lot and want to make
|
13
|
+
# sure you always have a clean state.
|
14
|
+
# always_clone: false
|
15
|
+
|
5
16
|
# Files to exclude from the upstream repository, they will not be copied over to the whitelabel project.
|
6
17
|
# Shell filename globbing rules apply, not regular expressions
|
7
18
|
#excluded_upstream_files:
|
@@ -4,13 +4,14 @@ module LabelWeaver
|
|
4
4
|
module Configuration
|
5
5
|
# Defines the configuration model for use throughout the gem.
|
6
6
|
Model = Data.define(
|
7
|
+
:always_clone,
|
7
8
|
:excluded_upstream_files,
|
8
9
|
:git,
|
9
10
|
:hooks,
|
10
11
|
:merges,
|
11
12
|
:forced_upstream_files
|
12
13
|
) do
|
13
|
-
def initialize(git:, hooks: {}, excluded_upstream_files: [], forced_upstream_files: [], merges: [])
|
14
|
+
def initialize(git:, always_clone: false, hooks: {}, excluded_upstream_files: [], forced_upstream_files: [], merges: [])
|
14
15
|
super
|
15
16
|
end
|
16
17
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "erb"
|
3
4
|
require "cogger"
|
4
5
|
require "containable"
|
5
6
|
require "runcom"
|
@@ -12,7 +13,10 @@ module LabelWeaver
|
|
12
13
|
|
13
14
|
register :configuration do
|
14
15
|
if self[:xdg_config].active
|
15
|
-
|
16
|
+
configuration_file = File.read(self[:xdg_config].active)
|
17
|
+
config = ERB.new(configuration_file).result
|
18
|
+
|
19
|
+
data = self[:defaults].merge(YAML.load(config, symbolize_names: true))
|
16
20
|
contract = Configuration::Contract.call(**data)
|
17
21
|
|
18
22
|
raise ArgumentError.new(contract.errors.to_h) if contract.failure?
|
@@ -45,7 +45,12 @@ module LabelWeaver
|
|
45
45
|
#
|
46
46
|
# Clones the repository if it doesn't exist yet locally or fetches the latest updates
|
47
47
|
#
|
48
|
-
def clone_or_update
|
48
|
+
def clone_or_update(always_clone: false)
|
49
|
+
if always_clone
|
50
|
+
logger.info "Set to always clone the repository. Deleting any previously checked out version..."
|
51
|
+
FileUtils.rm_rf(repository_path)
|
52
|
+
end
|
53
|
+
|
49
54
|
if repository_path.exist?
|
50
55
|
logger.info "Pulling latest changes from remote repository (#{repository_url})..."
|
51
56
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: label_weaver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Exner
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11
|
11
|
+
date: 2024-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cogger
|
@@ -239,6 +239,7 @@ files:
|
|
239
239
|
- lib/label_weaver/cli/actions/diff/format.rb
|
240
240
|
- lib/label_weaver/cli/actions/init.rb
|
241
241
|
- lib/label_weaver/cli/actions/prepare_base_project.rb
|
242
|
+
- lib/label_weaver/cli/actions/print_configuration.rb
|
242
243
|
- lib/label_weaver/cli/commands/develop.rb
|
243
244
|
- lib/label_weaver/cli/commands/diff.rb
|
244
245
|
- lib/label_weaver/cli/shell.rb
|