dsu 3.0.0.alpha.12 → 3.0.0.beta.1
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/.rubocop.yml +2 -0
- data/CHANGELOG.md +2 -0
- data/Gemfile +5 -5
- data/Gemfile.lock +19 -16
- data/lib/dsu/cli.rb +2 -1
- data/lib/dsu/crud/json_file.rb +5 -0
- data/lib/dsu/migration/base_service.rb +118 -0
- data/lib/dsu/migration/migrator.rb +24 -0
- data/lib/dsu/migration/raw_helpers/color_theme_hash.rb +13 -0
- data/lib/dsu/migration/raw_helpers/configuration_hash.rb +15 -0
- data/lib/dsu/migration/raw_helpers/entry_group_hash.rb +13 -0
- data/lib/dsu/migration/raw_json_file.rb +15 -0
- data/lib/dsu/migration/raw_json_files.rb +56 -0
- data/lib/dsu/migration/v20230613121411/service.rb +94 -0
- data/lib/dsu/migration/v20240210161248/service.rb +148 -0
- data/lib/dsu/models/color_theme.rb +2 -0
- data/lib/dsu/models/configuration.rb +6 -0
- data/lib/dsu/models/project.rb +2 -2
- data/lib/dsu/presenters/project/defaultable.rb +15 -0
- data/lib/dsu/presenters/project/use_by_number_presenter.rb +4 -0
- data/lib/dsu/presenters/project/use_presenter.rb +4 -0
- data/lib/dsu/subcommands/project.rb +3 -6
- data/lib/dsu/support/fileable.rb +11 -7
- data/lib/dsu/support/project_file_system.rb +2 -5
- data/lib/dsu/version.rb +2 -2
- data/lib/dsu/views/project/list.rb +4 -4
- data/lib/dsu.rb +8 -13
- data/lib/locales/en/commands.yml +4 -0
- data/lib/locales/en/miscellaneous.yml +1 -2
- data/lib/locales/en/subcommands.yml +21 -11
- data/lib/seed_data/20230613121411/dsu/migration_version.json +3 -0
- data/lib/seed_data/{themes → 20230613121411/dsu/themes}/light.json +2 -2
- data/lib/seed_data/20240210161248/dsu/current_project.json +4 -0
- data/lib/seed_data/20240210161248/dsu/migration_version.json +3 -0
- data/lib/seed_data/20240210161248/dsu/projects/default/project.json +5 -0
- data/lib/seed_data/20240210161248/dsu/themes/cherry.json +79 -0
- data/lib/seed_data/20240210161248/dsu/themes/christmas.json +79 -0
- data/lib/seed_data/20240210161248/dsu/themes/default.json +79 -0
- data/lib/seed_data/20240210161248/dsu/themes/lemon.json +79 -0
- data/lib/seed_data/20240210161248/dsu/themes/light.json +79 -0
- data/lib/seed_data/20240210161248/dsu/themes/matrix.json +79 -0
- data/lib/seed_data/20240210161248/dsu/themes/whiteout.json +79 -0
- metadata +32 -12
- data/lib/dsu/migration/factory.rb +0 -26
- data/lib/dsu/migration/service.rb +0 -196
- data/lib/dsu/migration/service_20230613121411.rb +0 -178
- /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/cherry.json +0 -0
- /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/christmas.json +0 -0
- /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/default.json +0 -0
- /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/lemon.json +0 -0
- /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/matrix.json +0 -0
- /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/whiteout.json +0 -0
@@ -81,6 +81,12 @@ module Dsu
|
|
81
81
|
write! unless exist?
|
82
82
|
end
|
83
83
|
|
84
|
+
class << self
|
85
|
+
def exist?
|
86
|
+
File.exist?(Support::Fileable.config_path)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
84
90
|
# Temporarily sets the configuration to the given config_hash.
|
85
91
|
# To reset the configuration to its original state, call #reload
|
86
92
|
def replace!(config_hash: {})
|
data/lib/dsu/models/project.rb
CHANGED
@@ -25,9 +25,9 @@ module Dsu
|
|
25
25
|
|
26
26
|
VERSION = Migration::VERSION
|
27
27
|
MIN_PROJECT_NAME_LENGTH = 2
|
28
|
-
MAX_PROJECT_NAME_LENGTH =
|
28
|
+
MAX_PROJECT_NAME_LENGTH = 32
|
29
29
|
MIN_DESCRIPTION_LENGTH = 2
|
30
|
-
MAX_DESCRIPTION_LENGTH =
|
30
|
+
MAX_DESCRIPTION_LENGTH = 64
|
31
31
|
|
32
32
|
attr_reader :project_name, :current_project_file, :description, :version, :options
|
33
33
|
|
@@ -2,11 +2,14 @@
|
|
2
2
|
|
3
3
|
require_relative '../../models/project'
|
4
4
|
require_relative '../base_presenter_ex'
|
5
|
+
require_relative 'defaultable'
|
5
6
|
|
6
7
|
module Dsu
|
7
8
|
module Presenters
|
8
9
|
module Project
|
9
10
|
class UseByNumberPresenter < BasePresenterEx
|
11
|
+
include Defaultable
|
12
|
+
|
10
13
|
attr_reader :project_number
|
11
14
|
|
12
15
|
delegate :project_name, to: :project, allow_nil: true
|
@@ -23,6 +26,7 @@ module Dsu
|
|
23
26
|
def respond(response:)
|
24
27
|
return false unless response
|
25
28
|
|
29
|
+
project.default! if make_default? && project&.present?
|
26
30
|
project.use! if project&.present?
|
27
31
|
end
|
28
32
|
|
@@ -2,11 +2,14 @@
|
|
2
2
|
|
3
3
|
require_relative '../../models/project'
|
4
4
|
require_relative '../base_presenter_ex'
|
5
|
+
require_relative 'defaultable'
|
5
6
|
|
6
7
|
module Dsu
|
7
8
|
module Presenters
|
8
9
|
module Project
|
9
10
|
class UsePresenter < BasePresenterEx
|
11
|
+
include Defaultable
|
12
|
+
|
10
13
|
attr_reader :project_name
|
11
14
|
|
12
15
|
delegate :description, to: :project, prefix: true, allow_nil: true
|
@@ -22,6 +25,7 @@ module Dsu
|
|
22
25
|
def respond(response:)
|
23
26
|
return false unless response
|
24
27
|
|
28
|
+
project.default! if make_default? && project&.present?
|
25
29
|
project.use! if project&.present?
|
26
30
|
end
|
27
31
|
|
@@ -23,7 +23,6 @@ module Dsu
|
|
23
23
|
|
24
24
|
desc I18n.t('subcommands.project.create.desc'), I18n.t('subcommands.project.create.usage')
|
25
25
|
long_desc I18n.t('subcommands.project.create.long_desc')
|
26
|
-
option :prompts, type: :hash, default: {}, hide: true, aliases: '-p'
|
27
26
|
def create(project_name = nil, description = nil)
|
28
27
|
project_name = project_name.to_s.strip
|
29
28
|
description = description.to_s.strip
|
@@ -41,7 +40,6 @@ module Dsu
|
|
41
40
|
|
42
41
|
desc I18n.t('subcommands.project.delete.desc'), I18n.t('subcommands.project.delete.usage')
|
43
42
|
long_desc I18n.t('subcommands.project.delete.long_desc')
|
44
|
-
option :prompts, type: :hash, default: {}, hide: true, aliases: '-p'
|
45
43
|
def delete(project_name_or_number = nil)
|
46
44
|
options = configuration.to_h.merge(self.options).with_indifferent_access
|
47
45
|
presenter = delete_presenter_for(project_name_or_number, options: options)
|
@@ -50,7 +48,6 @@ module Dsu
|
|
50
48
|
|
51
49
|
desc I18n.t('subcommands.project.list.desc'), I18n.t('subcommands.project.list.usage')
|
52
50
|
long_desc I18n.t('subcommands.project.list.long_desc')
|
53
|
-
option :prompts, type: :hash, default: {}, hide: true, aliases: '-p'
|
54
51
|
def list
|
55
52
|
options = configuration.to_h.merge(self.options).with_indifferent_access
|
56
53
|
presenter = Presenters::Project::ListPresenter.new(options: options)
|
@@ -59,7 +56,6 @@ module Dsu
|
|
59
56
|
|
60
57
|
desc I18n.t('subcommands.project.rename.desc'), I18n.t('subcommands.project.rename.usage')
|
61
58
|
long_desc I18n.t('subcommands.project.rename.long_desc')
|
62
|
-
option :prompts, type: :hash, default: {}, hide: true, aliases: '-p'
|
63
59
|
def rename(project_name_or_number = nil, new_project_name = nil, new_project_description = nil)
|
64
60
|
project_name_or_number = project_name_or_number.to_s.strip
|
65
61
|
new_project_name = new_project_name&.to_s&.strip
|
@@ -77,9 +73,10 @@ module Dsu
|
|
77
73
|
rename_view_for(project_name_or_number, presenter: presenter, options: options).render
|
78
74
|
end
|
79
75
|
|
80
|
-
desc I18n.t('subcommands.project.use.desc'),
|
76
|
+
desc I18n.t('subcommands.project.use.desc'),
|
77
|
+
I18n.t('subcommands.project.use.usage')
|
81
78
|
long_desc I18n.t('subcommands.project.use.long_desc')
|
82
|
-
option :
|
79
|
+
option :default, type: :boolean, required: false, default: false, aliases: '-d', banner: 'DEFAULT_PROJECT'
|
83
80
|
def use(project_name_or_number = nil)
|
84
81
|
options = configuration.to_h.merge(self.options).with_indifferent_access
|
85
82
|
presenter = use_presenter_for(project_name_or_number, options: options)
|
data/lib/dsu/support/fileable.rb
CHANGED
@@ -77,16 +77,14 @@ module Dsu
|
|
77
77
|
Gem.loaded_specs['dsu'].gem_dir
|
78
78
|
end
|
79
79
|
|
80
|
-
#
|
80
|
+
# Seed data files and folders
|
81
81
|
|
82
|
-
def
|
83
|
-
File.join(
|
82
|
+
def seed_data_dsu_folder_for(migration_version:)
|
83
|
+
File.join(gem_dir, 'lib/seed_data', migration_version.to_s, 'dsu')
|
84
84
|
end
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
def seed_data_folder
|
89
|
-
File.join(gem_dir, 'lib/seed_data')
|
86
|
+
def seed_data_dsu_configuration_for(migration_version:)
|
87
|
+
File.join(gem_dir, 'lib/seed_data', migration_version.to_s, '.dsu')
|
90
88
|
end
|
91
89
|
|
92
90
|
# Projects
|
@@ -126,6 +124,12 @@ module Dsu
|
|
126
124
|
end
|
127
125
|
alias project_file project_file_for
|
128
126
|
|
127
|
+
# Backup folders
|
128
|
+
|
129
|
+
def backup_folder_for(migration_version:)
|
130
|
+
File.join(root_folder, "dsu-#{migration_version}-backup")
|
131
|
+
end
|
132
|
+
|
129
133
|
extend self # rubocop:disable Style/ModuleFunction
|
130
134
|
end
|
131
135
|
end
|
@@ -39,6 +39,8 @@ module Dsu
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def default_project_name
|
42
|
+
return Models::Configuration::DEFAULT_CONFIGURATION[:default_project] unless Models::Configuration.exist?
|
43
|
+
|
42
44
|
Models::Configuration.new.default_project
|
43
45
|
end
|
44
46
|
|
@@ -78,11 +80,6 @@ module Dsu
|
|
78
80
|
end
|
79
81
|
alias current_project_file_persisted? current_project_file_exist?
|
80
82
|
|
81
|
-
# Does dsu/projects folder exist?
|
82
|
-
def projects_folder_exist?
|
83
|
-
Dir.exist?(projects_folder)
|
84
|
-
end
|
85
|
-
|
86
83
|
# Does dsu/projects/<project_name> folder exist?
|
87
84
|
def project_folder_exist?(project_name:)
|
88
85
|
Dir.exist?(project_folder_for(project_name: project_name))
|
data/lib/dsu/version.rb
CHANGED
@@ -8,10 +8,10 @@ module Dsu
|
|
8
8
|
# TODO: I18n.
|
9
9
|
class List < Views::BaseListView
|
10
10
|
NO_JUSTIFICATION = 4
|
11
|
-
PROJECT_JUSTIFICATION = 15
|
12
|
-
DEFAULT_JUSTIFICATION = 10
|
13
|
-
CURRENT_JUSTIFICATION = 10
|
14
|
-
DESCRIPTION_JUSTIFICATION = 10
|
11
|
+
PROJECT_JUSTIFICATION = 15 + 10
|
12
|
+
DEFAULT_JUSTIFICATION = 10 + 10
|
13
|
+
CURRENT_JUSTIFICATION = 10 + 10
|
14
|
+
DESCRIPTION_JUSTIFICATION = 10 + 10
|
15
15
|
|
16
16
|
DETAIL_HEADER_STRING = "#{'No.'.ljust(NO_JUSTIFICATION)} " \
|
17
17
|
"#{'Project'.ljust(PROJECT_JUSTIFICATION)} " \
|
data/lib/dsu.rb
CHANGED
@@ -20,19 +20,14 @@ Hash.include(ColorThemeMode)
|
|
20
20
|
require_relative 'dsu/env'
|
21
21
|
require 'pry-byebug' if Dsu.env.development?
|
22
22
|
|
23
|
-
Dir.glob("#{__dir__}/dsu/**/*.rb").each
|
24
|
-
require file
|
25
|
-
end
|
23
|
+
Dir.glob("#{__dir__}/dsu/**/*.rb").each { |file| require file }
|
26
24
|
|
27
25
|
unless Dsu.env.test? || Dsu.env.development?
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
Dsu::Migration::Factory.migrate_if!(options: { pretend: false })
|
26
|
+
# NOTE: Add a new migration service to the array whenever a new migration is created.
|
27
|
+
options = { pretend: false }
|
28
|
+
migration_services = [
|
29
|
+
V20230613121411::Service.new(options: options),
|
30
|
+
V20240210161248::Service.new(options: options)
|
31
|
+
]
|
32
|
+
Dsu::Migration::Migrator.migrate_if!(migration_services: migration_services)
|
38
33
|
end
|
data/lib/locales/en/commands.yml
CHANGED
@@ -25,6 +25,5 @@ en:
|
|
25
25
|
try_again: "Please try again. Valid options are [%{options}]."
|
26
26
|
migrations:
|
27
27
|
error:
|
28
|
+
missing_current_migration_service: "No migration service handles the current migration: %{migration_version}."
|
28
29
|
failed: "Error running migrations: %{message}"
|
29
|
-
information:
|
30
|
-
theme_copied: Theme copied from %{from} to %{to}.
|
@@ -511,11 +511,11 @@ en:
|
|
511
511
|
|
512
512
|
PROJECT_NAME
|
513
513
|
|
514
|
-
The name of the project to create. PROJECT_NAME must be between 2 and
|
514
|
+
The name of the project to create. PROJECT_NAME must be between 2 and 32 characters (inclusive) in length.
|
515
515
|
|
516
516
|
PROJECT_DESCRIPTION
|
517
517
|
|
518
|
-
Optional. The description of the project. PROJECT_DESCRIPTION must be between 2 and
|
518
|
+
Optional. The description of the project. PROJECT_DESCRIPTION must be between 2 and 64 characters (inclusive) in length. If PROJECT_DESCRIPTION is not provided, the project description will be "<PROJECT_NAME> project" where <PROJECT_NAME> = the name of the project.
|
519
519
|
|
520
520
|
EXAMPLES
|
521
521
|
|
@@ -553,11 +553,11 @@ en:
|
|
553
553
|
|
554
554
|
PROJECT_NUMBER
|
555
555
|
|
556
|
-
The number of the project to delete. If PROJECT_NUMBER is used, the project equating to the nth project in the list of projects will be
|
556
|
+
The number of the project to delete. If PROJECT_NUMBER is used, the project equating to the nth project in the list of projects will be deleted (see `dsu project list`).
|
557
557
|
|
558
558
|
NOTES
|
559
559
|
|
560
|
-
PROJECT_NAME and PROJECT_NUMBER are optional. If neither are provided, the current, default project will be
|
560
|
+
PROJECT_NAME and PROJECT_NUMBER are optional. If neither are provided, the current, default project will be deleted.
|
561
561
|
|
562
562
|
EXAMPLES
|
563
563
|
|
@@ -610,19 +610,19 @@ en:
|
|
610
610
|
|
611
611
|
PROJECT_NAME
|
612
612
|
|
613
|
-
The name of the project to create. PROJECT_NAME must be between 2 and
|
613
|
+
The name of the project to create. PROJECT_NAME must be between 2 and 32 characters (inclusive) in length.
|
614
614
|
|
615
615
|
PROJECT_NUMBER
|
616
616
|
|
617
|
-
The number of the project to rename. If PROJECT_NUMBER is used, the project equating to the nth project in the list of projects will be
|
617
|
+
The number of the project to rename. If PROJECT_NUMBER is used, the project equating to the nth project in the list of projects will be renamed (see `dsu project list`).
|
618
618
|
|
619
619
|
NEW_PROJECT_NAME
|
620
620
|
|
621
|
-
The new name of the project. NEW_PROJECT_NAME must be between 2 and
|
621
|
+
The new name of the project. NEW_PROJECT_NAME must be between 2 and 32 characters (inclusive) in length.
|
622
622
|
|
623
623
|
NEW_PROJECT_DESCRIPTION
|
624
624
|
|
625
|
-
Optional. The description of the project. NEW_PROJECT_DESCRIPTION must be between 2 and
|
625
|
+
Optional. The description of the project. NEW_PROJECT_DESCRIPTION must be between 2 and 64 characters (inclusive) in length. If NEW_PROJECT_DESCRIPTION is not provided, the project description will be "<NEW_PROJECT_NAME> project" where <NEW_PROJECT_NAME> = the name of the project.
|
626
626
|
|
627
627
|
EXAMPLES
|
628
628
|
|
@@ -648,14 +648,18 @@ en:
|
|
648
648
|
- Y
|
649
649
|
- n
|
650
650
|
use:
|
651
|
-
desc: use|u [PROJECT_NAME|PROJECT_NUMBER]
|
651
|
+
desc: use|u [OPTIONS] [PROJECT_NAME|PROJECT_NUMBER]
|
652
652
|
usage: Selects the DSU project to use, based on the given PROJECT_NAME or PROJECT_NUMBER
|
653
653
|
long_desc: |
|
654
654
|
Selects the DSU project to use, based on the given PROJECT_NAME or PROJECT_NUMBER.
|
655
655
|
|
656
|
-
dsu project use [PROJECT_NAME|PROJECT_NUMBER]
|
656
|
+
dsu project use [OPTIONS] [PROJECT_NAME|PROJECT_NUMBER]
|
657
657
|
|
658
|
-
dsu p u [PROJECT_NAME|PROJECT_NUMBER]
|
658
|
+
dsu p u [OPTIONS] [PROJECT_NAME|PROJECT_NUMBER]
|
659
|
+
|
660
|
+
OPTIONS:
|
661
|
+
|
662
|
+
-d|--default true|false (default: false): If true, the PROJECT_NAME|PROJECT_NUMBER will become the default project.
|
659
663
|
|
660
664
|
PROJECT_NAME
|
661
665
|
|
@@ -688,6 +692,12 @@ en:
|
|
688
692
|
$ dsu project use 2
|
689
693
|
|
690
694
|
$ dsu p u 2
|
695
|
+
|
696
|
+
These will use "Project A" and make it the default project if it is not the default project.
|
697
|
+
|
698
|
+
$ dsu project use --default "Project A"
|
699
|
+
|
700
|
+
$ dsu p u -d "Project A"
|
691
701
|
messages:
|
692
702
|
using_project: Now using project "%{project_name}".
|
693
703
|
prompts:
|
@@ -32,7 +32,7 @@
|
|
32
32
|
"background": "default"
|
33
33
|
},
|
34
34
|
"footer": {
|
35
|
-
"color": "
|
35
|
+
"color": "default",
|
36
36
|
"mode": "default",
|
37
37
|
"background": "default"
|
38
38
|
},
|
@@ -42,7 +42,7 @@
|
|
42
42
|
"background": "default"
|
43
43
|
},
|
44
44
|
"index": {
|
45
|
-
"color": "
|
45
|
+
"color": "default",
|
46
46
|
"mode": "italic",
|
47
47
|
"background": "default"
|
48
48
|
},
|
@@ -0,0 +1,79 @@
|
|
1
|
+
{
|
2
|
+
"version": 20240210161248,
|
3
|
+
"description": "Cherry color theme",
|
4
|
+
"help": {
|
5
|
+
"color": "red",
|
6
|
+
"mode": "default",
|
7
|
+
"background": "default"
|
8
|
+
},
|
9
|
+
"dsu_header": {
|
10
|
+
"color": "white",
|
11
|
+
"mode": "bold",
|
12
|
+
"background": "red"
|
13
|
+
},
|
14
|
+
"dsu_footer": {
|
15
|
+
"color": "red",
|
16
|
+
"mode": "default",
|
17
|
+
"background": "default"
|
18
|
+
},
|
19
|
+
"header": {
|
20
|
+
"color": "red",
|
21
|
+
"mode": "bold",
|
22
|
+
"background": "default"
|
23
|
+
},
|
24
|
+
"subheader": {
|
25
|
+
"color": "red",
|
26
|
+
"mode": "underline",
|
27
|
+
"background": "default"
|
28
|
+
},
|
29
|
+
"body": {
|
30
|
+
"color": "red",
|
31
|
+
"mode": "default",
|
32
|
+
"background": "default"
|
33
|
+
},
|
34
|
+
"footer": {
|
35
|
+
"color": "light_red",
|
36
|
+
"mode": "default",
|
37
|
+
"background": "default"
|
38
|
+
},
|
39
|
+
"date": {
|
40
|
+
"color": "red",
|
41
|
+
"mode": "bold",
|
42
|
+
"background": "default"
|
43
|
+
},
|
44
|
+
"index": {
|
45
|
+
"color": "light_red",
|
46
|
+
"mode": "italic",
|
47
|
+
"background": "default"
|
48
|
+
},
|
49
|
+
"info": {
|
50
|
+
"color": "red",
|
51
|
+
"mode": "default",
|
52
|
+
"background": "default"
|
53
|
+
},
|
54
|
+
"success": {
|
55
|
+
"color": "red",
|
56
|
+
"mode": "default",
|
57
|
+
"background": "default"
|
58
|
+
},
|
59
|
+
"warning": {
|
60
|
+
"color": "yellow",
|
61
|
+
"mode": "default",
|
62
|
+
"background": "default"
|
63
|
+
},
|
64
|
+
"error": {
|
65
|
+
"color": "light_yellow",
|
66
|
+
"mode": "default",
|
67
|
+
"background": "red"
|
68
|
+
},
|
69
|
+
"prompt": {
|
70
|
+
"color": "red",
|
71
|
+
"mode": "bold",
|
72
|
+
"background": "default"
|
73
|
+
},
|
74
|
+
"prompt_options": {
|
75
|
+
"color": "white",
|
76
|
+
"mode": "bold",
|
77
|
+
"background": "default"
|
78
|
+
}
|
79
|
+
}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
{
|
2
|
+
"version": 20240210161248,
|
3
|
+
"description": "Christmas theme ho ho ho!",
|
4
|
+
"help": {
|
5
|
+
"color": "red",
|
6
|
+
"mode": "default",
|
7
|
+
"background": "default"
|
8
|
+
},
|
9
|
+
"dsu_header": {
|
10
|
+
"color": "white",
|
11
|
+
"mode": "bold",
|
12
|
+
"background": "red"
|
13
|
+
},
|
14
|
+
"dsu_footer": {
|
15
|
+
"color": "red",
|
16
|
+
"mode": "default",
|
17
|
+
"background": "default"
|
18
|
+
},
|
19
|
+
"header": {
|
20
|
+
"color": "light_green",
|
21
|
+
"mode": "bold",
|
22
|
+
"background": "red"
|
23
|
+
},
|
24
|
+
"subheader": {
|
25
|
+
"color": "red",
|
26
|
+
"mode": "underline",
|
27
|
+
"background": "default"
|
28
|
+
},
|
29
|
+
"body": {
|
30
|
+
"color": "red",
|
31
|
+
"mode": "italic",
|
32
|
+
"background": "default"
|
33
|
+
},
|
34
|
+
"footer": {
|
35
|
+
"color": "red",
|
36
|
+
"mode": "italic",
|
37
|
+
"background": "default"
|
38
|
+
},
|
39
|
+
"date": {
|
40
|
+
"color": "white",
|
41
|
+
"mode": "bold",
|
42
|
+
"background": "green"
|
43
|
+
},
|
44
|
+
"index": {
|
45
|
+
"color": "white",
|
46
|
+
"mode": "bold",
|
47
|
+
"background": "red"
|
48
|
+
},
|
49
|
+
"info": {
|
50
|
+
"color": "white",
|
51
|
+
"mode": "bold",
|
52
|
+
"background": "light_red"
|
53
|
+
},
|
54
|
+
"success": {
|
55
|
+
"color": "white",
|
56
|
+
"mode": "bold",
|
57
|
+
"background": "green"
|
58
|
+
},
|
59
|
+
"warning": {
|
60
|
+
"color": "default",
|
61
|
+
"mode": "bold",
|
62
|
+
"background": "yellow"
|
63
|
+
},
|
64
|
+
"error": {
|
65
|
+
"color": "light_yellow",
|
66
|
+
"mode": "default",
|
67
|
+
"background": "red"
|
68
|
+
},
|
69
|
+
"prompt": {
|
70
|
+
"color": "white",
|
71
|
+
"mode": "bold",
|
72
|
+
"background": "green"
|
73
|
+
},
|
74
|
+
"prompt_options": {
|
75
|
+
"color": "red",
|
76
|
+
"mode": "bold",
|
77
|
+
"background": "default"
|
78
|
+
}
|
79
|
+
}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
{
|
2
|
+
"version": 20240210161248,
|
3
|
+
"description": "Default color theme",
|
4
|
+
"help": {
|
5
|
+
"color": "cyan",
|
6
|
+
"mode": "default",
|
7
|
+
"background": "default"
|
8
|
+
},
|
9
|
+
"dsu_header": {
|
10
|
+
"color": "white",
|
11
|
+
"mode": "bold",
|
12
|
+
"background": "cyan"
|
13
|
+
},
|
14
|
+
"dsu_footer": {
|
15
|
+
"color": "cyan",
|
16
|
+
"mode": "default",
|
17
|
+
"background": "default"
|
18
|
+
},
|
19
|
+
"header": {
|
20
|
+
"color": "cyan",
|
21
|
+
"mode": "bold",
|
22
|
+
"background": "default"
|
23
|
+
},
|
24
|
+
"subheader": {
|
25
|
+
"color": "cyan",
|
26
|
+
"mode": "underline",
|
27
|
+
"background": "default"
|
28
|
+
},
|
29
|
+
"body": {
|
30
|
+
"color": "cyan",
|
31
|
+
"mode": "default",
|
32
|
+
"background": "default"
|
33
|
+
},
|
34
|
+
"footer": {
|
35
|
+
"color": "light_cyan",
|
36
|
+
"mode": "default",
|
37
|
+
"background": "default"
|
38
|
+
},
|
39
|
+
"date": {
|
40
|
+
"color": "cyan",
|
41
|
+
"mode": "bold",
|
42
|
+
"background": "default"
|
43
|
+
},
|
44
|
+
"index": {
|
45
|
+
"color": "light_cyan",
|
46
|
+
"mode": "default",
|
47
|
+
"background": "default"
|
48
|
+
},
|
49
|
+
"info": {
|
50
|
+
"color": "cyan",
|
51
|
+
"mode": "default",
|
52
|
+
"background": "default"
|
53
|
+
},
|
54
|
+
"success": {
|
55
|
+
"color": "green",
|
56
|
+
"mode": "default",
|
57
|
+
"background": "default"
|
58
|
+
},
|
59
|
+
"warning": {
|
60
|
+
"color": "yellow",
|
61
|
+
"mode": "default",
|
62
|
+
"background": "default"
|
63
|
+
},
|
64
|
+
"error": {
|
65
|
+
"color": "light_yellow",
|
66
|
+
"mode": "default",
|
67
|
+
"background": "red"
|
68
|
+
},
|
69
|
+
"prompt": {
|
70
|
+
"color": "cyan",
|
71
|
+
"mode": "bold",
|
72
|
+
"background": "default"
|
73
|
+
},
|
74
|
+
"prompt_options": {
|
75
|
+
"color": "white",
|
76
|
+
"mode": "bold",
|
77
|
+
"background": "default"
|
78
|
+
}
|
79
|
+
}
|