csd 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.4
1
+ 0.3.5
@@ -10,6 +10,9 @@ module CSD
10
10
  #
11
11
  DEBIAN_DEPENDENCIES = %w{ libnotify-bin libmng1 dkms }
12
12
 
13
+ # This method notifies users about following operation of AI, and initiates introduction method.
14
+ # The actual installation process is carried out by method install! for the purpose of keeping source code clean.
15
+ #
13
16
  def install
14
17
  UI.separator
15
18
  UI.info "This operation will download and install the DeckLink device drivers.".green.bold
@@ -18,6 +21,12 @@ module CSD
18
21
  install!
19
22
  end
20
23
 
24
+ # This method installs DeckLink drivers by initiating corresponding method sequentially. It will download DeckLink
25
+ # drivers from official website, extract the dirver from tar file, select the suitable driver according to system
26
+ # architecture, and intall the DeckLink driver. After the installation process, it will add the driver into boot loader,
27
+ # so the driver can be loaded automatically at system booting up. It will also notify the user and clean up working
28
+ # directory when the whole operation is completed.
29
+ #
21
30
  def install!
22
31
  create_working_directory
23
32
  define_relative_paths
@@ -29,6 +38,17 @@ module CSD
29
38
  cleanup_working_directory
30
39
  end
31
40
 
41
+ # This method is to provide general introductions to users, like current working directory.
42
+ #
43
+ # ====Options
44
+ # [debug] If debug option is set, users will be notified about system platform and current working module.
45
+ # [help] If help option is set, AI will provide all help information and cleanup in case the working directory was temporary and is empty.
46
+ # [reveal] If reveal option is set, AI will continue and process the next method.
47
+ # [yes] If yes option is set, AI will continue and process the next method.
48
+ #
49
+ # If users did not specify any option, AI will ask for their willingness to continue and process the next method
50
+ # after the users choose 'yes'. Or AI will terminate its operation.
51
+ #
32
52
  def introduction
33
53
  UI.info " Working directory: ".green.bold + Path.work.to_s.yellow
34
54
  if Options.debug
@@ -46,6 +66,10 @@ module CSD
46
66
  end
47
67
  end
48
68
 
69
+ # This method downloads DeckLink driver from official BlackmagicDesign website. Before downloading the driver,
70
+ # AI will search the current working directory for the driver, if it is already there, AI will not download the
71
+ # driver again. Otherwise, AI will download the driver, and place it in the current working directory.
72
+ #
49
73
  def download
50
74
  if Path.tar.file?
51
75
  UI.warn "The driver will not be downloaded, because it already exists: #{Path.tar.enquote}"
@@ -56,9 +80,10 @@ module CSD
56
80
  end
57
81
  end
58
82
 
83
+ # This method extracts the tar file of DeckLink driver.
59
84
  def extract
60
85
  if Path.packages.directory?
61
- UI.warn "The tar file will not be extracted, because package repositot already exist: #{Path.packages.enquote}"
86
+ UI.warn "The tar file will not be extracted, because package repository already exist: #{Path.packages.enquote}"
62
87
  else
63
88
  UI.info "Extracting DeckLink drivers".green.bold
64
89
  Cmd.mkdir Path.packages
@@ -92,7 +117,7 @@ module CSD
92
117
 
93
118
  def define_relative_paths
94
119
  blacklink_repository = 'http://www.blackmagic-design.com/downloads/software/'
95
- decklink_basename = 'DeckLink_Linux_7.7.3'
120
+ decklink_basename = 'DeckLink_Linux_7.9'
96
121
  decklink_extension = '.tar.gz'
97
122
  Path.decklink_url = blacklink_repository + decklink_basename + decklink_extension
98
123
  Path.tar = Pathname.new(File.join(Path.work, "#{decklink_basename + decklink_extension}"))
@@ -208,7 +208,7 @@ module CSD
208
208
  def define_relative_paths
209
209
  UI.debug "#{self.class}#define_relative_paths defines relative graphics paths now"
210
210
  Path.radeon = Pathname.new(File.join(Path.work, 'radeon'))
211
- Path.radeon_run = Pathname.new(File.join(Path.radeon, 'ati-driver-installer-10-7-x86.x86_64.run'))
211
+ Path.radeon_run = Pathname.new(File.join(Path.radeon, 'ati-driver-installer-10-9-x86.x86_64.run'))
212
212
  Path.geforce = Pathname.new(File.join(Path.work, 'geforce'))
213
213
  Path.geforce_run = Pathname.new(File.join(Path.geforce, 'NVIDIA-Linux-x86-256.44.run.sh'))
214
214
  end
@@ -200,7 +200,9 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
200
200
  end
201
201
 
202
202
  # The method creates a minimum configuration file for i2conf if it is not available.
203
- # This configuration is based on
203
+ # This configuration is based on currently available carenet-se service. However, the user may modify the
204
+ # configuration file according to its own network scenario after installation process.
205
+ #
204
206
  def configure_i2conf
205
207
  if Path.i2conf_example_conf.file?
206
208
  UI.warn "Creating no example configuration file, because it already exists: #{Path.i2conf_example_conf}. "
@@ -218,6 +220,11 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
218
220
  Cmd.run %{notify-send --icon=i2conf_gnome "I2conf installation complete" "You are now ready to use your SIP MCU." }, :internal => true, :die_on_failure => false
219
221
  end
220
222
 
223
+ # This method notifies users that i2conf installation process is completed successfully.
224
+ # It is AI's internal notification, which will be shown on the command line interface.
225
+ # Users can then start i2conf by clicking the icon in gnome menu or use command line interface.
226
+ # AI will also notify the users about possible modifications on the configuration file, according to users' network scenario.
227
+ #
221
228
  def congratulations
222
229
  cleanup_working_directory if Options.temp
223
230
  UI.separator
@@ -233,6 +240,17 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
233
240
  UI.separator
234
241
  end
235
242
 
243
+ # This method provides general introductions to users, like current working directory.
244
+ #
245
+ # ====Options
246
+ # [debug] If debug option is set, users will be notified about system platform and current working module.
247
+ # [help] If help option is set, AI will provide all help information and cleanup in case the working directory was temporary and is empty.
248
+ # [reveal] If reveal option is set, AI will continue and process the next method.
249
+ # [yes] If yes option is set, AI will continue and process the next method.
250
+ #
251
+ # If users did not specify any option, AI will ask for their willingness to continue and process the next method
252
+ # after the users choose 'yes'. Or AI will terminate its operation.
253
+ #
236
254
  def introduction
237
255
  UI.info " Working directory: ".green.bold + Path.work.to_s.yellow
238
256
  if Options.debug
@@ -250,6 +268,8 @@ Categories=Application;Internet;Network;Chat;AudioVideo}
250
268
  end
251
269
  end
252
270
 
271
+ # This method is to define relative path in i2conf module. This will make the program clean and easy to read.
272
+ #
253
273
  def define_relative_paths
254
274
  UI.debug "#{self.class}#define_relative_paths defines relative i2conf paths now"
255
275
  Path.str_manager = Pathname.new(File.join(Path.work, 'libstrmanager'))
@@ -127,6 +127,7 @@ module CSD
127
127
  Path.ffmpeg_libswscale = Pathname.new(File.join(Path.ffmpeg_repository, 'libswscale'))
128
128
  Path.x264_repository = Pathname.new(File.join(Path.work, 'x264'))
129
129
  Path.packaging = Pathname.new(File.join(Path.work, 'packaging'))
130
+ Path.packages = Pathname.new(File.join(Path.work, 'packages'))
130
131
  Path.hdviper = Pathname.new(File.join(Path.work, 'hdviper'))
131
132
  Path.hdviper_x264 = Pathname.new(File.join(Path.hdviper, 'x264'))
132
133
  Path.hdviper_libtidx264 = Pathname.new(File.join(Path.hdviper_x264, 'libtidx264.a'))
@@ -19,7 +19,9 @@ module CSD
19
19
  UI.info "This operation will make debian packages for all MiniSIP libraries.".green.bold
20
20
  UI.separator
21
21
  packing_introduction
22
+ remove_ffmpeg
22
23
  Cmd.mkdir Path.packaging
24
+ Cmd.mkdir Path.packages
23
25
  libraries.each do |library|
24
26
  @library = library
25
27
  @directory = Pathname.new(File.join(Path.repository, library))
@@ -72,13 +74,16 @@ module CSD
72
74
  if Cmd.cd(Path.packaging)
73
75
  package = File.basename(Dir[File.join(Path.packaging, "#{@library}*.deb")].first)
74
76
  Cmd.run("sudo dpkg -i #{package}") if package or Options.reveal
77
+ Cmd.move(File.join(Path.packaging, package.to_s), Path.packages) if package or Options.reveal
75
78
  end
76
79
  else
77
80
  if Cmd.cd(Path.packaging)
78
81
  package = File.basename(Dir[File.join(Path.packaging, "#{@library}0*.deb")].first)
79
82
  Cmd.run("sudo dpkg -i #{package}") if package or Options.reveal
83
+ Cmd.move(File.join(Path.packaging, package.to_s), Path.packages) if package or Options.reveal
80
84
  dev_package = File.basename(Dir[File.join(Path.packaging, "#{@library}-dev*.deb")].first)
81
85
  Cmd.run("sudo dpkg -i #{dev_package}") if dev_package or Options.reveal
86
+ Cmd.move(File.join(Path.packaging, dev_package.to_s), Path.packages) if dev_package or Options.reveal
82
87
  end
83
88
  end
84
89
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csd
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 4
10
- version: 0.3.4
9
+ - 5
10
+ version: 0.3.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Technology Transfer Alliance Team