ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 19 Apr 2015, 18:08 
Offline
Nuby

Registriert: 19 Apr 2015, 17:53
Beiträge: 4
Hallo Forum. Im Moment versuche ich ein Shellscript in Ruby neu aufzusetzen.

Aktuell habe ich ein get-Modul:



1
2
3
4
5
6
7
8
9
10
11
12
13
module PublicanCreatorsGet

def self.get_title
# Titel erfragen
titelin = `yad --entry --button="Best��tigen" --title="Neuen Artikel erstellen" --text="Gebe ein Titel ein (Mit Unterstrichen statt Leerzeichen und ohne Umlaute):"`
$titel = titelin.chomp
end

def self.get_article_type
artin = `yad --title="Artikelart ausw��hlen" --text="Welcher Art ist dein Artikel?" --button="Report" --button="Normale-Dokumentation" --image=/usr/share/pixmaps/publican-xcom.png`
$art = artin.chomp
end
end


Dann ein Checkermodul:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
require 'dir'
require 'fileutils'

module Checker

# Checks if the targetdirectory are present. If not, it creates one
def self.check_dir
# Checking if dir exists
if Dir.exist?("#{$todo}")
puts 'Found directory. Im using it.'
else
puts 'No directory found. Im creating it.'
# Creates the new directory
FileUtils.mkdir_p("#{$todo}")
if Dir.exist?("#{$todo}")
puts 'Created new directory...'
else
raise('Cant create directory')
end
end
end

end


Das Mainfile enthält:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# $titel erfragen
PublicanCreatorsGet.get_title
include PublicanCreatorsGet
puts $titel

# Variablen
home = Dir.home
publican_doc_dir = "#{home}/Dokumente/Textdokumente/publican-dokumentation2"
publican_ver_get = `publican -v`
publican_ver = publican_ver_get.delete 'version='
articles_dir = "#{publican_doc_dir}/articles"
xcom_brand_dir = '/usr/share/publican/Common_Content/XCOM'
ent = "de-DE/#{$titel}.ent"
artinfo = 'de-DE/Article_Info.xml'
revhist = 'de-DE/Revision_History.xml'
agroup = 'de-DE/Author_Group.xml'
builds = 'de-DE/build.sh'
gsbuha_docdir = 'Projekte/GSBUHA/Dokumentation'
reports_docdir = "#{gsbuha_docdir}/Reports"

# Checkt ob articles_dir exisitert. Wenn nicht, wird es erstellt
puts "Erstellt Verzeichnis #{articles_dir}/#{$titel}"
$todo = "#{articles_dir}/#{$titel}"
Checker.check_dir

# Wechsel in article Verzeichnis
puts 'Wechsle in article Verzeichnis'
FileUtils.cd("#{articles_dir}") do

FileUtils.cd("#{$titel}") do

# Erstellung der Initialdokumentation mit Publican
puts 'Erstelle Initialdokumentation ...'
system("publican create --lang de-DE --brand XCOM --type Article --dtdver 5.0 --name #{$titel}")
[ ... more code ... ]
end
end


Wenn ich den Code nun ausführe, dann habe ich unter publican-dokumentation2/articles zwei Unterordner somit statt publican-dokumentation2/articles/Test01/Test01 statt publican-dokumentation2/articles/Test01.
Weiß jemand woher das doppelte Verzeichnis kommt?
P.S. Der restliche Code steckt hier https://github.com/saigkill/PublicanCreators/tree/master/lib


Nach oben
 Profil  
 
BeitragVerfasst: 20 Apr 2015, 00:17 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Ich kenne das Tool nicht, das du da verwendest, aber bei den meisten die ich so kenne, erzeugt ein create oder new subcommand ein Verzeichnis, ich vermute dass das das Problem ist.

Auf jeden Fall solltest du aber deinen Code aufräumen und statt globaler Variablen Parameter und Rückgabewerte der Funktionen nutzen. Selbst vor dem Hintergrund, dass das ein ehemaliges Shellscript ist, ein wahrer Graue... Selbst Shell kennt Parameter und Rückgabewerte für Funktionen und lässt Verzicht auf globale Variablen in den meisten Fällen zu...

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
BeitragVerfasst: 20 Apr 2015, 07:06 
Offline
Nuby

Registriert: 19 Apr 2015, 17:53
Beiträge: 4
Hallo. Hat sich erledigt. Genau das war das Problem. Danke schön :-)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron