dsu 3.0.0.alpha.12 → 3.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/CHANGELOG.md +2 -0
  4. data/Gemfile +5 -5
  5. data/Gemfile.lock +19 -16
  6. data/lib/dsu/cli.rb +2 -1
  7. data/lib/dsu/crud/json_file.rb +5 -0
  8. data/lib/dsu/migration/base_service.rb +118 -0
  9. data/lib/dsu/migration/migrator.rb +24 -0
  10. data/lib/dsu/migration/raw_helpers/color_theme_hash.rb +13 -0
  11. data/lib/dsu/migration/raw_helpers/configuration_hash.rb +15 -0
  12. data/lib/dsu/migration/raw_helpers/entry_group_hash.rb +13 -0
  13. data/lib/dsu/migration/raw_json_file.rb +15 -0
  14. data/lib/dsu/migration/raw_json_files.rb +56 -0
  15. data/lib/dsu/migration/v20230613121411/service.rb +94 -0
  16. data/lib/dsu/migration/v20240210161248/service.rb +148 -0
  17. data/lib/dsu/models/color_theme.rb +2 -0
  18. data/lib/dsu/models/configuration.rb +6 -0
  19. data/lib/dsu/models/project.rb +2 -2
  20. data/lib/dsu/presenters/project/defaultable.rb +15 -0
  21. data/lib/dsu/presenters/project/use_by_number_presenter.rb +4 -0
  22. data/lib/dsu/presenters/project/use_presenter.rb +4 -0
  23. data/lib/dsu/subcommands/project.rb +3 -6
  24. data/lib/dsu/support/fileable.rb +11 -7
  25. data/lib/dsu/support/project_file_system.rb +2 -5
  26. data/lib/dsu/version.rb +2 -2
  27. data/lib/dsu/views/project/list.rb +4 -4
  28. data/lib/dsu.rb +8 -13
  29. data/lib/locales/en/commands.yml +4 -0
  30. data/lib/locales/en/miscellaneous.yml +1 -2
  31. data/lib/locales/en/subcommands.yml +21 -11
  32. data/lib/seed_data/20230613121411/dsu/migration_version.json +3 -0
  33. data/lib/seed_data/{themes → 20230613121411/dsu/themes}/light.json +2 -2
  34. data/lib/seed_data/20240210161248/dsu/current_project.json +4 -0
  35. data/lib/seed_data/20240210161248/dsu/migration_version.json +3 -0
  36. data/lib/seed_data/20240210161248/dsu/projects/default/project.json +5 -0
  37. data/lib/seed_data/20240210161248/dsu/themes/cherry.json +79 -0
  38. data/lib/seed_data/20240210161248/dsu/themes/christmas.json +79 -0
  39. data/lib/seed_data/20240210161248/dsu/themes/default.json +79 -0
  40. data/lib/seed_data/20240210161248/dsu/themes/lemon.json +79 -0
  41. data/lib/seed_data/20240210161248/dsu/themes/light.json +79 -0
  42. data/lib/seed_data/20240210161248/dsu/themes/matrix.json +79 -0
  43. data/lib/seed_data/20240210161248/dsu/themes/whiteout.json +79 -0
  44. metadata +32 -12
  45. data/lib/dsu/migration/factory.rb +0 -26
  46. data/lib/dsu/migration/service.rb +0 -196
  47. data/lib/dsu/migration/service_20230613121411.rb +0 -178
  48. /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/cherry.json +0 -0
  49. /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/christmas.json +0 -0
  50. /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/default.json +0 -0
  51. /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/lemon.json +0 -0
  52. /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/matrix.json +0 -0
  53. /data/lib/seed_data/{themes → 20230613121411/dsu/themes}/whiteout.json +0 -0
@@ -20,6 +20,8 @@ module Dsu
20
20
  include Support::Fileable
21
21
  include Support::Presentable
22
22
 
23
+ THEME_FILE_NAME_REGEX = /.+.json/
24
+
23
25
  VERSION = Migration::VERSION
24
26
 
25
27
  DEFAULT_THEME_NAME = 'default'
@@ -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: {})
@@ -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 = 24
28
+ MAX_PROJECT_NAME_LENGTH = 32
29
29
  MIN_DESCRIPTION_LENGTH = 2
30
- MAX_DESCRIPTION_LENGTH = 32
30
+ MAX_DESCRIPTION_LENGTH = 64
31
31
 
32
32
  attr_reader :project_name, :current_project_file, :description, :version, :options
33
33
 
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dsu
4
+ module Presenters
5
+ module Project
6
+ module Defaultable
7
+ private
8
+
9
+ def make_default?
10
+ options.fetch(:default, false)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -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'), I18n.t('subcommands.project.use.usage')
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 :prompts, type: :hash, default: {}, hide: true, aliases: '-p'
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)
@@ -77,16 +77,14 @@ module Dsu
77
77
  Gem.loaded_specs['dsu'].gem_dir
78
78
  end
79
79
 
80
- # Back up folder
80
+ # Seed data files and folders
81
81
 
82
- def backup_folder(version:)
83
- File.join(dsu_folder, 'backup', version.to_s)
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
- # Seed data folders
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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dsu
4
- VERSION_REGEX = /\A\d+\.\d+\.\d+(\.(alpha|rc)\.\d+)?\z/
5
- VERSION = '3.0.0.alpha.12'
4
+ VERSION_REGEX = /\A\d+\.\d+\.\d+(\.(alpha|beta|rc)\.\d+)?\z/
5
+ VERSION = '3.0.0.beta.1'
6
6
  end
@@ -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 do |file|
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
- if Dsu::Migration::Service.run_migrations?
29
- begin
30
- Dsu::Migration::Service.new.call
31
- rescue StandardError => e
32
- puts I18n.t('migrations.error.failed', message: e.message)
33
- exit 1
34
- end
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
@@ -120,6 +120,10 @@ en:
120
120
  date:
121
121
  aliases: -d
122
122
  name: 'date'
123
+ date_or_mnemonic:
124
+ aliases: -d
125
+ name: 'date'
126
+ banner: 'DATE|MNEMONIC'
123
127
  today:
124
128
  aliases: -n
125
129
  name: 'today'
@@ -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 24 characters (inclusive) in length.
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 32 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.
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 used (see `dsu project list`).
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 used.
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 24 characters (inclusive) in length.
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 used (see `dsu project list`).
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 24 characters (inclusive) in length.
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 32 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.
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:
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": 20230613121411
3
+ }
@@ -32,7 +32,7 @@
32
32
  "background": "default"
33
33
  },
34
34
  "footer": {
35
- "color": "light_default",
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": "light_default",
45
+ "color": "default",
46
46
  "mode": "italic",
47
47
  "background": "default"
48
48
  },
@@ -0,0 +1,4 @@
1
+ {
2
+ "version": 20240210161248,
3
+ "project_name": "default"
4
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": 20240210161248
3
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "version": 20240210161248,
3
+ "project_name": "default",
4
+ "description": "default project"
5
+ }
@@ -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
+ }