Class: RBT::Action::ReportXfceVersion

Inherits:
RBT::Action show all
Defined in:
lib/rbt/actions/individual_actions/information/report_xfce_version.rb

Overview

RBT::Action::ReportXfceVersion

Constant Summary collapse

N_LJUST =
#

N_LJUST

#
18

Constants inherited from LeanPrototype

LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from LeanPrototype

#a_or_an?, #abbreviations?, #absolute_path, #action, #add_to_the_commandline_arguments, #all_binaries?, #all_files_from, #all_libraries?, #allowed_cookbook_entries?, #appdir_location_of?, #append_onto_the_internal_hash, #append_what_into, #archive_type_of?, #available_programs?, #be_quiet?, #be_verbose?, #begins_with_a_comment?, #capitalize_first_alphabetical_character, #cd_to_the_log_directory, #cd_to_the_temp_directory, #change_directory, #change_permission, #cheering_person?, #chmod, #chop_off_archive, #clear_commandline_options, #cliner, #coloured_and_padded_e, #coloured_and_padded_esystem, #coloured_esystem, #colourize_directory_for_system_results, #colourize_this_error, #colourize_this_file_path, #colourize_this_warning, #commandline_arguments?, #commandline_arguments_without_hyphens?, #comment, #convert_dd_mm_yyyy_to_its_long_variant, #convert_env_variable, #copy_directory, #copy_files, #cpr, #create_directory, #current_hour?, #dd_mmm_yyy, #debug, #debug?, #directory_expanded_cookbooks?, #disable_colours, #display_md5sum?, #do_not_debug, #does_the_cookbook_include_this_program?, #does_this_expanded_cookbook_file_exist_for_this_program?, #does_this_file_exist?, #does_this_file_exist_and_is_it_a_file?, #e, #eblue, #ecomment, #ecrimson, #edir, #editor?, #efancy, #eimp, #enable_colours, #enable_debug, #ensure_main_encoding_for, #eparse, #esystem, #esystem_gold, #etomato, #ewarn, #exit_program, #expanded_cookbooks_directory_exists?, #extract_this_archive, #extract_to?, #file_compiled_programs?, #file_dirname_retaining_trailing_slash, #file_predefined_installation_instructions?, #file_specification_of_registered_cookbook_entries, #find_cookbook_alias_for, #find_this_yaml_file, #first_argument?, #first_non_hyphen_argument?, #get_all_directories_from, #get_all_files_from, #get_all_programs, #get_date, #get_extended_date, #get_files_and_directories_from, #go_to_base_dir, #home_dir?, #host_system?, #infer_the_namespace, #internal_hash?, #internal_hash_set_commandline_arguments, #is_an_archive?, #is_directory?, #is_file?, #is_github_url?, #is_make_available?, #is_on_gobolinux?, #is_on_windows?, #is_roebe?, #is_superuser?, #is_symlink?, #is_this_a_header?, #is_this_a_library?, #is_this_program_included?, #iso_encoding?, #load_dataset_from_this_expanded_cookbook, #load_yaml, #load_yaml_file_from_the_cookbook_directory_for_this_program, #log_directory?, #main_encoding?, #meson_build_file_exists?, #months?, #move_file, #n_programs_are_available?, #n_programs_available?, #namespace?, #no_directory_exists_at, #no_opn, #no_such_file_exists, #open_in_browser, #open_in_editor, #opncomment, #opne, #opnef, #opnerev, #opnerror, #opnesystem, #opnewarn, #opnfancy, #opnn, #packages_directory?, #path_to_this_expanded_cookbooks_dataset, #pkgconfig_directory?, #populate_the_internal_hash_with_default_values, #predefined_installation_instructions?, #prepend_this_commandline_argument, #program_version_of?, #project_base_directory?, #project_yaml_directory?, #query_path?, #rarrow?, #read_file, #read_file_in_default_encoding, #read_file_with_default_encoding, #readlines, #readlines_with_proper_encoding, #register_sigint, #registered_cookbook_entries?, #remove, #remove_archive_from_the_end, #remove_comments_from_each_line, #remove_directory, #remove_double_slashes, #remove_file, #remove_newlines, #remove_parens, #remove_symlink, #remove_this_commandline_argument, #remove_this_entry_from_the_commandline_arguments, #remove_trailing_ANSII_escape_code, #remove_unnecessary_data_from_url, #rename, #report_pwd, #require_the_rbt_aliases, #reset_the_internal_hash, #return_all_archives_from_this_directory, #return_appdir_prefix, #return_commandline_arguments_with_leading_hyphens, #return_current_hour_minutes_second, #return_date, #return_day_of_the_month_based_on_utc, #return_full_time, #return_hours_minutes_seconds_based_on_utc, #return_location_to_this_programs_yaml_file, #return_month_based_on_this_number, #return_month_based_on_utc, #return_opnn, #return_program_information, #return_program_name_for_gobolinux_systems, #return_pwd, #return_unicode_warning_symbol_or_empty_string, #return_utc, #return_utc_time_in_a_format_similar_to_slackware, #return_weekday_based_on_utc, #return_year_based_on_utc, #rev, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_opn, #set_xorg_buffer, #sfancy, #sfile, #silent_redirection?, #silently_create_this_directory_if_it_does_not_yet_exist, #simp, #source_base_directory?, #ssym, #stderr, #store_into_this_directory?, #string_right_arrow?, #swarn, #symlink, #sysbin_directory?, #sysetc_directory?, #sysinclude_directory?, #syslib_directory?, #sysshare_directory?, #system_directory?, #temp_directory?, #to_bool, #to_camelcase, #to_iso_encoding, #to_unicode, #today?, #touch, #try_to_require_beautiful_url, #try_to_require_the_environment_information_gem, #try_to_require_the_extracter_gem, #try_to_require_the_open_gem, #try_to_require_the_xorg_buffer, #try_to_require_wget, #try_to_return_a_special_compile_component, #unicode_cliner, #unicode_middle_cliner, #use_colours=, #use_colours?, #use_opn=, #use_opn?, #utf_encoding?, #verbose_truth, #word_wrap, #write_what_into, #write_what_into_via_unicode, #yes_or_no

Constructor Details

#initialize(run_already = true, &block) ⇒ ReportXfceVersion

#

initialize

#


35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 35

def initialize(
    run_already = true,
    &block
  )
  reset
  # ======================================================================= #
  # === Handle blocks given to this method next
  # ======================================================================= #
  if block_given?
    yielded = yield
    case yielded
    # ===================================================================== #
    # === :do_not_report
    # ===================================================================== #
    when :do_not_report,
         :do_not_report_anything
      @internal_hash[:do_report] = false
    end
  end
  run if run_already
end

Class Method Details

.[](i = ARGV) ⇒ Object

#

RBT::Action::ReportXfceVersion[]

#


266
267
268
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 266

def self.[](i = ARGV)
  new(i)
end

Instance Method Details

#add(i = '', add_newline = true) ⇒ Object

#

add (add tag)

#


80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 80

def add(
    i           = '',
    add_newline = true
  )
  case add_newline
  when :no_newline
    add_newline = false
  end
  if add_newline
    i = i.dup if i.frozen?
    i << "\n"
  end
  @internal_hash[:string_to_display] << i
end

#add_garcon_versionObject

#

add_garcon_version

#


229
230
231
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 229

def add_garcon_version
  add '  garcon: '.ljust(n_ljust?)+determine_version_of('garcon')
end

#add_newlineObject

#

add_newline

#


106
107
108
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 106

def add_newline
  add
end

#determine_version_of(i = 'xfdesktop') ⇒ Object

#

determine_version_of

#


171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 171

def determine_version_of(
    i = 'xfdesktop'
  )
  case i
  # ======================================================================= #
  # === exo
  # ======================================================================= #
  when 'exo'
    result = `pkg-config --modversion exo-2`.strip
  # ======================================================================= #
  # === libxfce4util
  # ======================================================================= #
  when 'libxfce4util'
    result = `pkg-config --modversion libxfce4util-1.0`.strip
  # ======================================================================= #
  # === libxfce4ui
  # ======================================================================= #
  when 'libxfce4ui'
    result = `pkg-config --modversion libxfce4ui-2`.strip
  # ======================================================================= #
  # === xfce4-panel
  # ======================================================================= #
  when /xfce4-?panel/
    result = `pkg-config --modversion libxfce4panel-2.0`.strip
  # ======================================================================= #
  # === garcon
  # ======================================================================= #
  when 'garcon'
    result = `pkg-config --modversion garcon-1`.strip
  else # This is the default entry point.
    result = `#{i} --version 2>&1`
  end
  if result.include? N
    result = result.split(N).first
  end
  # ======================================================================= #
  # Check for results such as:
  #
  #   "This is xfdesktop version 4.14.2, running on Xfce 4.15."
  #
  # or
  #
  #   "xfce4-session 4.14.1 (Xfce 4.15)"
  #
  # ======================================================================= #
  if result.include?(' version ')
    result = result.scan(
      /version (\d{1,2}\.?\d{1,2}\.?\d{1,2})/
    ).flatten.first
  elsif result.include?(' (')
    result = result.split(' (').first.split(' ').last
  end
  result
end

#do_report?Boolean

#

do_report?

#

Returns:

  • (Boolean)


147
148
149
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 147

def do_report?
  @internal_hash[:do_report]
end

#left_paddedObject

#

left_padded

#


113
114
115
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 113

def left_padded
  "#{grey}  "
end

#n_ljust?Boolean

#

n_ljust?

#

Returns:

  • (Boolean)


127
128
129
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 127

def n_ljust?
  @internal_hash[:n_ljust]
end

#reportObject

#

report (report tag)

#


154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 154

def report
  if do_report?
    string_to_display?.split(N).each {|line|
      if line.include? ':'
        _ = line.split(':')
        e seagreen(_[0]+':')+steelblue(_[1])
      else
        e line
      end
    }
    e
  end
end

#report_pluma_versionObject

#

report_pluma_version

#


120
121
122
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 120

def report_pluma_version
  add left_padded+'Pluma: '.ljust(n_ljust?)+slateblue(plumav?)
end

#resetObject

#

reset (reset tag)

#


60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 60

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === :n_ljust
  # ======================================================================= #
  @internal_hash[:n_ljust] = N_LJUST
  # ======================================================================= #
  # === :string_to_display
  # ======================================================================= #
  @internal_hash[:string_to_display] = ''.dup
  # ======================================================================= #
  # === :do_report
  # ======================================================================= #
  @internal_hash[:do_report] = true
end

#return_pkgconfig_result_for(i = :libmatekbd) ⇒ Object Also known as: pkgconfig_result

#

return_pkgconfig_result_for

#


134
135
136
137
138
139
140
141
142
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 134

def return_pkgconfig_result_for(
    i = :libmatekbd
  )
  result = `pkg-config --modversion #{i} 2>&1`.strip
  if result.include?('No package ') and result.include?(' found')
    result = ''
  end
  return result
end

#runObject

#

run (run tag)

#


236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 236

def run
  add grey, :no_newline
  add rev+'Reporting the installed versions of the '+
      royalblue('xfce-desktop components')+
      grey(':')+rev
  add_newline
  # ======================================================================= #
  # Next, add the programs that will be queried. These must all belong
  # to XFCE in one way or another.
  # ======================================================================= #
  n_ljust = n_ljust?
  add '  thunar: '.ljust(n_ljust)+pkgconfig_result('thunarx-3')
  add '  tumbler: '.ljust(n_ljust)+pkgconfig_result('tumbler-1')
  add '  xfconf: '.ljust(n_ljust)+pkgconfig_result('libxfconf-0')
  add '  xfdesktop: '.ljust(n_ljust)+determine_version_of('xfdesktop')
  add '  xfwm4: '.ljust(n_ljust)+determine_version_of('xfwm4')
  add '  xfce4-session: '.ljust(n_ljust)+determine_version_of('xfce4-session')
  add '  xfce4-settings: '.ljust(n_ljust)+determine_version_of('xfce4-settings-manager')
  add '  xfce4-panel: '.ljust(n_ljust)+determine_version_of('xfce4-panel')
  add '  libxfce4util: '.ljust(n_ljust)+determine_version_of('libxfce4util')
  add '  libxfce4ui: '.ljust(n_ljust)+determine_version_of('libxfce4ui')
  add '  exo: '.ljust(n_ljust)+determine_version_of('exo')
  add_garcon_version
  add_newline
  report
end

#string_to_display?Boolean Also known as: string?, result?

#

string_to_display?

#

Returns:

  • (Boolean)


98
99
100
# File 'lib/rbt/actions/individual_actions/information/report_xfce_version.rb', line 98

def string_to_display?
  @internal_hash[:string_to_display]
end