K
Kyle Schmitt
I'm writing some scripts to help handle some ornery samba servers we
have: part of that is unfortunately reading the config scripts that
have built up over the years.
I was hoping to use the standard string method as a quick &
not-so-dirty way of parsing the files, given that samba uses a very
simple format.
#the sample_data variable is defined below
irb(main):sample_data.split(/\[[a-z0-9]+\]/i)
=> ["", "\ncomment = shared directory for the shop\npath =
/dept/shop\nvalid u ....(truncated)
Gives good results, but omits what's between the brackets. I expected
that part.
irb(main):sample_data.split(/(\[[a-z0-9]+\])/i)
=> ["", "[shop]", "\ncomment = shared directory for the shop\npath =
/dept/sho ....(truncated)
Neat, gives me the data between the brackets in an element before the
data itself.
I know quite well I can zip through that array again, but I was
wondering, hoping, that there would be a way of accessing that back
reference in a block as part of the split.
Is there any way to do that that I'm just missing?
Thanks,
Kyle
sample_data=%{[shop]
comment = shared directory for the shop
path = /dept/shop
valid users = @shop @admin
public = no
writable = yes
force group = shop
create mask = 0770
[bob]
comment = User files for bob
path = /users/bob
valid users = bob @admin
public = no
writable = yes
create mask = 0770}
have: part of that is unfortunately reading the config scripts that
have built up over the years.
I was hoping to use the standard string method as a quick &
not-so-dirty way of parsing the files, given that samba uses a very
simple format.
#the sample_data variable is defined below
irb(main):sample_data.split(/\[[a-z0-9]+\]/i)
=> ["", "\ncomment = shared directory for the shop\npath =
/dept/shop\nvalid u ....(truncated)
Gives good results, but omits what's between the brackets. I expected
that part.
irb(main):sample_data.split(/(\[[a-z0-9]+\])/i)
=> ["", "[shop]", "\ncomment = shared directory for the shop\npath =
/dept/sho ....(truncated)
Neat, gives me the data between the brackets in an element before the
data itself.
I know quite well I can zip through that array again, but I was
wondering, hoping, that there would be a way of accessing that back
reference in a block as part of the split.
Is there any way to do that that I'm just missing?
Thanks,
Kyle
sample_data=%{[shop]
comment = shared directory for the shop
path = /dept/shop
valid users = @shop @admin
public = no
writable = yes
force group = shop
create mask = 0770
[bob]
comment = User files for bob
path = /users/bob
valid users = bob @admin
public = no
writable = yes
create mask = 0770}