init.rb in rwdschedule-0.07 vs init.rb in rwdschedule-0.8
- old
+ new
@@ -16,164 +16,218 @@
#* You should have received a copy of the GNU General Public
#* License along with these files; if not, write to the Free Software
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#*
#* For further information please contact the author by e-mail
-#* at "smalllinux@gmail.com".
+#* at "steven@superant.com".
#***********************************************************************/
-require 'logger'
-
-LogDirectory = 'rwd_files/log/'
-logfilelocation = File.join(LogDirectory, 'rwdtinker.log')
-
-$rwdtinkerlog = Logger.new( logfilelocation , 'weekly' )
-$rwdtinkerlog.level = Logger::INFO
-
-require "lib/rwd/rwd"
+require "ev/rwd"
require 'fileutils'
-require 'lib/rconftool'
-
-$KCODE = 'u'
-require 'jcode'
-
+
$progdir = File::expand_path( File.dirname(__FILE__))
-tempdoc = " "
-
-# integrate the new configuration files
-MAINconfignew = "rwdconfig.cnf"
-MAINconfigdist = "rwdconfig.dist"
-Rconftool::install(MAINconfigdist,MAINconfignew)
-
-#load main config file
-load 'rwdconfig.cnf'
-
-Dir.chdir("configuration") #changes the current working directory
-
-fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /dist$/) } #creates an Array separated with \n
-@doc = ""
-fileList.length.times{ #opening of a block
-configdist =fileList.pop #pops the first item out of the Array
-tempconfigfile = configdist.gsub(/\.dist$/, "")
-confignew = tempconfigfile + ".cnf"
-Rconftool::install(configdist,confignew) #integrates new file with old
+ $tempdoc = " "
+
+ def findfiles(d)
+ a = Array.new(Dir[d].entries.sort)
+ #loop through and get the files names
+ a.each do |x|
+ #adjust the filters to the files you want to see...
+ if(!test(?d,x))
+ # only rwd files
+ if x =~ /rb|rwd|txt/
+ fileA=File.open("#{x}","r") #opens the file thats in fileName as read only
+ $tempdoc+=fileA.read #reads the file into the doc string
+ fileA.close
+ end
+ end
+ end
+ end
+ def loadguifile(d)
+ a = Array.new(Dir[d].entries.sort)
+ #loop through and get the files names
+ a.each do |x|
+ #adjust the filters to the files you want to see...
+ if(!test(?d,x))
+ # only rwd files
+ if x =~ /rb|rwd|txt/
+ load x #opens the file thats in fileName and reads it
+ $tempdoc += $rwdguivar # adds the file into the doc string
+ end
+ end
+ end
+ end
+
+# Read in the configuration files
+
+ Dir.chdir("configuration") #changes the current working directory
+
+ fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /cnf$/) } #creates an Array separated with \n
+ @doc = ""
+ fileList.length.times{ #opening of a block
+ fileName=fileList.pop #pops the first item out of the Array
+ load fileName #loads the the config file thats in fileName
} #closing block
- # END of configuration integration
- Dir.chdir($progdir)
+ # END of configuration reading
- # Read in the configuration files
- Dir.chdir("configuration") #changes the current working directory
+ Dir.chdir($progdir) # change back to top program directory
- fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /cnf$/) } #creates an Array separated with \n
- @doc = ""
- fileList.length.times{ #opening of a block
- fileName=fileList.pop #pops the first item out of the Array
- load fileName #loads the the config file thats in fileName
- } #closing block
- # END of configuration reading
+ # build the English Language hash file from the parts
+ startlangdir = @@langdir +"/" + "en"
+ #get a list of the files and subdirectories on the starting directory only
+ alanghash = Array.new(Dir[startlangdir].entries.sort)
+ #loop through the list, ignore the files and add all new directories found
+ alanghash.each do |x|
+ #if a directory...
+ if(test(?d,x))
+ # add to the original list of directories
+ @@tmproot = x + "/**"
+ #adds the new ones to the array
+ blanghash = Dir[@@tmproot].entries.sort
+ blanghash.each do |x|
+ if(test(?d,x))
+ alanghash.push(x) #appends to the end of the array...
+ end
+ end
+ end
+ end
+ alanghash.each do |x|
+ #if it is a file...
+ if(!test(?d,x))
+ alanghash.delete(x)
+ else #it is a directory...
+ findfiles(x + "/**")
+ end
+ end
+ fileLangHash=File.open(TempLangHashFile,"w") #deletes and opens a the file in fileName
+ fileLangHash.write($tempdoc) #writes the contents of doc into the file
+ fileLangHash.close
+ # END of Lang building
+ $tempdoc = " "
Dir.chdir($progdir) # change back to top program directory
+
+ # build the local Language hash file from the parts
+ startlangdir = @@langdir +"/" + $lang
+ #get a list of the files and subdirectories on the starting directory only
+ alanghash = Array.new(Dir[startlangdir].entries.sort)
+ #loop through the list, ignore the files and add all new directories found
+ alanghash.each do |x|
+ #if a directory...
+ if(test(?d,x))
+ # add to the original list of directories
+ @@tmproot = x + "/**"
+ #adds the new ones to the array
+ blanghash = Dir[@@tmproot].entries.sort
+ blanghash.each do |x|
+ if(test(?d,x))
+ alanghash.push(x) #appends to the end of the array...
+ end
+ end
+ end
+ end
+ alanghash.each do |x|
+ #if it is a file...
+ if(!test(?d,x))
+ alanghash.delete(x)
+ else #it is a directory...
+ findfiles(x + "/**")
+ end
+ end
+ filelocalLangHash=File.open(LocalLangHashFile,"w") #deletes and opens a the file in fileName
+ filelocalLangHash.write($tempdoc) #writes the contents of doc into the file
+ filelocalLangHash.close
- # build the English Language hash file from the parts
- Message = Hash.new { |hh, kk| hh[kk] = "ERROR: Message not found: #{kk.inspect}."; hh[kk] }
- langmessage = { :clear => "Clear", :rwdtinker => "Rwdtinker" } ; langmessage.each { |kk, vv| Message[kk] = vv }
-
- def msgid(programkey)
- $programkey = programkey
- end
-
- def msgstr(programmsg)
- if programmsg == ""
- $rwdtinkerlog.info "msgstr: no translation for #{$programkey}"
- else
- Message.update( $programkey.to_sym => programmsg )
- end
-end
+$tempdoc = " "
- require 'lib/rwdtinker/rwdlangdir'
-
- tempdoc = " "
- #go get all the po language file files in english
- tempdoc = RwdtinkerTools.findlanguagefiles(LangDir,"en")
+ Dir.chdir($progdir) # change back to top program directory
- #writes the contents of doc into the languagehashvariable
- languagehashvariable = tempdoc
+ # build the language hash constant object from the lang parts
+ #get a list of the files in lang directory only
+ alangfile = Dir.new(@@langdir).entries.sort.reverse.delete_if { |x| ! (x =~ /rb$/) }
+ alangfile.length.times{
+ fileName = alangfile.pop
+ Dir.chdir($progdir)
+ Dir.chdir(@@langdir)
+ fileLangA=File.open("#{fileName}","r") #opens the file thats in fileName as read only
+ $tempdoc += fileLangA.read #reads the file into the doc string
+ fileLangA.close
+ }
+
+Dir.chdir($progdir)
+ fileLangB=File.open(LangNameFile,"w") #deletes and opens a the file in fileName
+ fileLangB.write($tempdoc) #writes the contents of doc into the file
+ fileLangB.close
+ load LangNameFile # load the file
- # END of en Lang building
- tempdoc = " "
- Dir.chdir($progdir) # change back to top program directory
+ $tempdoc = " "
- # build the local Language hash file from the parts
-
- $lang = $langarray[0] # pick the language of choice
-
- # Go get all the po files for the language of choice
- tempdoc = RwdtinkerTools.findlanguagefiles(LangDir,$lang)
- # the contents of doc into the variable
- languagehashvariable = languagehashvariable + tempdoc
+ # build the actual program from the code parts
+ #get a list of the files and subdirectories on the starting directory only
+ a = Array.new(Dir[@@codedir].entries.sort)
+ #loop through the list, ignore the files and add all new directories found
+ a.each do |x|
+ #if a directory...
+ if(test(?d,x))
+ # add to the original list of directories
+ @@root = x + "/**"
+ #adds the new ones to the array
+ b = Dir[@@root].entries.sort
+ b.each do |x|
+ if(test(?d,x))
+ a.push(x) #appends to the end of the array...
+ end
+ end
+ end
+ end
+ a.each do |x|
+ #if it is a file...
+ if(!test(?d,x))
+ a.delete(x)
+ else #it is a directory...
+ findfiles(x + "/**")
+ end
+ end
- Dir.chdir($progdir) # change back to top program directory
-
- # lets read those po files, first english then the chosen language
- temp = eval( languagehashvariable )
+ fileB=File.open(CodeNameFile,"w") #deletes and opens a the file in fileName
+ fileB.write($tempdoc) #writes the contents of doc into the file
+ fileB.close
+ require CodeName # load the program file
-
+# build the actual GUI from the gui parts
+ $tempdoc = " "
+ #get a list of the files and subdirectories on the starting directory only
+ a = Array.new(Dir[@@guidir].entries.sort)
+ #loop through the list, ignore the files and add all new directories found
+ a.each do |x|
+ #if a directory...
+ if(test(?d,x))
+ #use this new dir find to add to the original list of directories
+ @@root = x + "/**"
+ #adds the new ones to the array
+ b = Dir[@@root].entries.sort
+ b.each do |x|
+ if(test(?d,x))
+ a.push(x) #appends to the end of the array...
+ end
+ end
+ end
+ end
+ a.each do |x|
+ #if it is a file...
+ if(!test(?d,x))
+ a.delete(x)
+
+ else #it is a directory...
+ loadguifile(x + "/**")
+ end
+ end
- # build the actual program from the code parts
- require 'lib/rwdtinker/rwdcodedir'
-
- tempdoc = RwdtinkerTools.findprogramfiles(CodeDir)
-
- # load the program file
-
- tempcoderesult = eval( tempdoc )
-
- # build the actual GUI from the gui parts
- require 'lib/rwdtinker/rwdguidir'
+ fileB=File.open(RWDFile,"w") #deletes and opens a the file in fileName
+ fileB.write($tempdoc) #writes the contents of doc into the file
+ fileB.close
- tempdoc = RwdtinkerTools.findguifiles(GuiDir)
-
+
- # gui variable is done
- guiRWD = ""
- $rwd_gui_tinker = tempdoc
- require 'socket' # Network stuff
- host = "127.0.0.1"
- port = $port
-
- # Create a socket to listen on and bind it to the host and port
- freeportfound = false
- until freeportfound
- begin
- @socket = UDPSocket::new()
- @socket.bind(host, port)
- freeportfound = true
- $port = port
- # Rescue the "Address in use" error
- rescue Errno::EADDRINUSE
- $rwdtinkerlog.warn "RWD Startup: Port #{port} on host #{host} is already in use."
- port=port +1
- $rwdtinkerlog.warn "trying port: #{port}"
- # Rescue the "Address not available' error
- rescue Errno::EADDRNOTAVAIL
- $rwdtinkerlog.warn "RWD Startup: Address #{host} is not available to bind."
- port =port + 1
- $rwdtinkerlog.warn "trying port: #{port}"
- # Rescue "permission denied errors
- rescue Errno::EACCES
- $rwdtinkerlog.warn "RWD Startup: Access denied when binding interface addresses. ?"
- port =port + 1
- $rwdtinkerlog.warn "trying port: #{port}"
- # Rescue all other errors
- rescue
- $rwdtinkerlog.warn "RWD Startup: An error occured."
- port =port + 1
- $rwdtinkerlog.warn "trying port: #{port}"
- # Rescue all other errors
- end
- $port = port
- end
-
-
- RwdTinker.new( $rwd_gui_tinker ).serve(port) # start the main class and program
+RwdTinker.file(RWDFile).serve($port) # start the main class and program