Class: Roebe::CreateISO

Inherits:
Base show all
Defined in:
lib/roebe/classes/create_iso.rb

Overview

Roebe::CreateISO

Constant Summary collapse

DEFAULT_DIRECTORY =
#

DEFAULT_DIRECTORY

#
'/Depot/ISOs/'

Constants inherited from Base

Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE

Instance Method Summary collapse

Methods inherited from Base

#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow

Methods included from Base::CommandlineArguments

#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments

Constructor Details

#initialize(i = DEFAULT_DIRECTORY, run_already = true) ⇒ CreateISO

#

initialize

#


32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/roebe/classes/create_iso.rb', line 32

def initialize(
    i           = DEFAULT_DIRECTORY,
    run_already = true
  )
  reset
  set_input(i)
  case run_already
  when :dont_run_yet
    run_already = false
  when :default
    run_already = true
  end
  # ======================================================================= #
  # === Handle blocks next
  # ======================================================================= #
  if block_given?
    yielded = yield
    if yielded.is_a? Hash
      # =================================================================== #
      # === :output_name
      # =================================================================== #
      if yielded.has_key? :output_name
        set_output_name(
          yielded.delete(:output_name).to_s
        )
      end
    end
  end
  run if run_already
end

Instance Method Details

#build_sys_commandObject Also known as: update

#

build_sys_command

This method will build the system-command that will be used, based on the binary called “mkisofs”.

#


113
114
115
116
117
118
# File 'lib/roebe/classes/create_iso.rb', line 113

def build_sys_command
  @cmd = 'mkisofs -J -r -v'.dup
  @cmd << ' -V '+dd_mm_yyyy
  @cmd << ' -o '+final_location_of_new_iso?
  @cmd << ' '+use_this_directory
end

#cmd?Boolean

#

cmd?

#

Returns:

  • (Boolean)


123
124
125
# File 'lib/roebe/classes/create_iso.rb', line 123

def cmd?
  @cmd
end

#final_location_of_new_iso?Boolean Also known as: final_location_of_new_iso, output?

#

final_location_of_new_iso?

#

Returns:

  • (Boolean)


102
103
104
# File 'lib/roebe/classes/create_iso.rb', line 102

def final_location_of_new_iso?
  @output
end

#input?Boolean Also known as: use_this_directory

#

input?

#

Returns:

  • (Boolean)


95
96
97
# File 'lib/roebe/classes/create_iso.rb', line 95

def input?
  @input.to_s
end

#reportObject

#

report

Use this method to report to the user.

#


171
172
173
174
175
176
177
178
179
# File 'lib/roebe/classes/create_iso.rb', line 171

def report
  _ = output?
  _ = File.absolute_path(_) # The absolute path is more useful, in my opinion.
  if File.exist? _
    opne "Finished creating the (.iso) file `#{sfancy(_)}`."
  else
    opnn; no_file_exists_at(_)
  end
end

#resetObject

#

reset (reset tag)

#


66
67
68
69
70
71
72
73
74
75
76
# File 'lib/roebe/classes/create_iso.rb', line 66

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @be_verbose
  # ======================================================================= #
  @be_verbose = true # Whether we are verbose or silent.
  set_input
  set_output
  build_sys_command # Run this so that we can use cmd? lateron.
end

#runObject

#

run (run tag)

#


184
185
186
# File 'lib/roebe/classes/create_iso.rb', line 184

def run
  run_everything
end

#run_everythingObject

#

run_everything

#


159
160
161
162
163
164
# File 'lib/roebe/classes/create_iso.rb', line 159

def run_everything
  build_sys_command
  e cmd? if be_verbose?
  system(cmd?)
  report if be_verbose?
end

#set_input(i = DEFAULT_DIRECTORY) ⇒ Object

#

set_input

The input to this method should be an existing directory.

#


83
84
85
86
87
88
89
90
# File 'lib/roebe/classes/create_iso.rb', line 83

def set_input(
    i = DEFAULT_DIRECTORY
  )
  i = i.first if i.is_a? Array
  i = DEFAULT_DIRECTORY if i.nil?
  i = i.to_s.dup if i
  @input = i
end

#set_output(i = 'output.iso', include_current_day_in_the_file = true) ⇒ Object Also known as: output=, set_output_name

#

set_output

This method is required for our output of the .iso file at hand.

If the second argument to this method is true, then we will also add the current time in the .iso file at hand.

#


135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/roebe/classes/create_iso.rb', line 135

def set_output(
    i                               = 'output.iso',
    include_current_day_in_the_file = true
  )
  i = i.to_s.dup
  if include_current_day_in_the_file
    # ===================================================================== #
    # In this case, append the current day into the file, via the
    # dd.mm.yyyy notation.
    # ===================================================================== #
    current_day = '_'+dd_mm_yyyy
    i << current_day
  end
  # ======================================================================= #
  # Ensure that a trailing .iso part exists.
  # ======================================================================= #
  i << '.iso' unless i.end_with? '.iso'
  @output = i
end