Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   Ruby equivalent to `find . -perm -g+rw -ls` (http://www.velocityreviews.com/forums/t854218-ruby-equivalent-to-find-perm-g-rw-ls.html)

Bil Kleb 11-17-2008 02:20 PM

Ruby equivalent to `find . -perm -g+rw -ls`
 
Hi,

I can't find a Ruby equivalent to

find . -perm -g+rw -ls

Currently, it looks like I'll need to combine,

File.stat(file).mode

with something like Hal Fulton's sym2oct,

http://blade.nagaokaut.ac.jp/cgi-bin...uby-talk/96956

hacked into Daniel Berger's file-find gem,

http://blade.nagaokaut.ac.jp/cgi-bin...by-talk/248981

and require 'etc' to pull out the user and group names instead of uids
and gids?

Is there an alternative to all this yak shaving?

Thanks,
--
http://twitter.com/bil_kleb

Rolando Abarca 11-17-2008 03:20 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 
On Nov 17, 2008, at 11:21 AM, Bil Kleb wrote:

> Hi,
>
> I can't find a Ruby equivalent to
>
> find . -perm -g+rw -ls
>
> Currently, it looks like I'll need to combine,
>
> File.stat(file).mode
>
> with something like Hal Fulton's sym2oct,
>
> http://blade.nagaokaut.ac.jp/cgi-bin...uby-talk/96956
>
> hacked into Daniel Berger's file-find gem,
>
> http://blade.nagaokaut.ac.jp/cgi-bin...by-talk/248981
>
> and require 'etc' to pull out the user and group names instead of uids
> and gids?
>
> Is there an alternative to all this yak shaving?


maybe something like this?

rolando:test_perm rolando$ ls -l
total 8
-rw-rw-r-- 1 rolando staff 0 Nov 17 12:12 1
-rw-r--r-- 1 rolando staff 0 Nov 17 12:13 2
-rw-r--r-- 1 rolando staff 77 Nov 17 12:21 perm.rb

rolando:test_perm rolando$ find . -perm -g+rw -ls
1510804 0 -rw-rw-r-- 1 rolando staff 0 Nov 17
12:12 ./1

rolando:test_perm rolando$ ruby perm.rb
["./1"]
rolando:test_perm rolando$ cat perm.rb
# NOTE: 060 == g+rw
p Dir["./**/*"].select { |f| File.stat(f).mode & 060 == 060 ? true :
nil }


> Thanks,
> --
> http://twitter.com/bil_kleb



regards,
--
Rolando Abarca M.





Bil Kleb 11-17-2008 06:33 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 
Hi,

Rolando Abarca <funkas...@gmail.com> wrote:
>
> maybe something like this?
> [..]
> rolando:test_perm rolando$ cat perm.rb
> # NOTE: 060 == g+rw


This is what I'm reduced to doing now. It just feels wrong
for me to have to resort to octal -- it's not at the
correct abstraction level as evidenced by your comment.

> p Dir["./**/*"].select {
> |f| File.stat(f).mode & 060 == 060 ? true : nil }


You don't need the '? true : nil' part AFAICT -- the
first conditional satisfies select.

Regards,
--
http://twitter.com/bil_kleb

Daniel Berger 11-17-2008 06:40 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 
Bil Kleb wrote:
> Hi,
>
> I can't find a Ruby equivalent to
>
> find . -perm -g+rw -ls
>
> Currently, it looks like I'll need to combine,
>
> File.stat(file).mode
>
> with something like Hal Fulton's sym2oct,
>
> http://blade.nagaokaut.ac.jp/cgi-bin...uby-talk/96956
>
> hacked into Daniel Berger's file-find gem,
>
> http://blade.nagaokaut.ac.jp/cgi-bin...by-talk/248981
>
> and require 'etc' to pull out the user and group names instead of uids
> and gids?
>
> Is there an alternative to all this yak shaving?


Not at the moment, but both are excellent ideas. I've submitted them myself at:

http://rubyforge.org/tracker/index.p...=735&atid=2912
http://rubyforge.org/tracker/index.p...=735&atid=2912

Supporting strings for users and groups is trivial. Supporting symbolic
permissions will be more of a hassle.

Regards,

Dan



Rolando Abarca 11-17-2008 06:40 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 
On Nov 17, 2008, at 3:31 PM, Bil Kleb wrote:

> You don't need the '? true : nil' part AFAICT -- the
> first conditional satisfies select.


that's correct.

> Regards,
> --
> http://twitter.com/bil_kleb



regards,
--
Rolando Abarca M.






Bil Kleb 11-17-2008 06:59 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 
Hi,

Daniel Berger <djber...@gmail.com> wrote:
> Bil Kleb wrote:
> > [..] Is there an alternative to all this yak shaving?

>
> Not at the moment, but both are excellent ideas.
> I've submitted them myself at:
>
> [http://rubyforge.org/tracker/?atid=2912&group_id=735]


Excellent; thanks.

Regards,
--
Bil
http://fun3d.larc.nasa.gov

Daniel Berger 11-17-2008 11:46 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 
Bil Kleb wrote:
> Hi,
>
> Daniel Berger <djber...@gmail.com> wrote:
>> Bil Kleb wrote:
>>> [..] Is there an alternative to all this yak shaving?

>> Not at the moment, but both are excellent ideas.
>> I've submitted them myself at:
>>
>> [http://rubyforge.org/tracker/?atid=2912&group_id=735]

>
> Excellent; thanks.


I've already tested and committed the changes for the :user and :group changes.
They'll be part of release 0.2.2. I should have a release out this week.

I'll save the :perm changes for 0.2.3 after I've had the chance to review some
of the code I've seen online.

Regards,

Dan


Daniel Berger 11-19-2008 05:27 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 
Hi,

On Nov 17, 11:56 am, Bil Kleb <Bil.K...@gmail.com> wrote:
> Hi,
>
> Daniel Berger <djber...@gmail.com> wrote:
> > BilKlebwrote:
> > > [..] Is there an alternative to all this yak shaving?

>
> > Not at the moment, but both are excellent ideas.
> > I've submitted them myself at:

>
> > [http://rubyforge.org/tracker/?atid=2912&group_id=735]

>
> Excellent; thanks.


file-find 0.2.2 has been released, which now supports names as well as
id's for the :name and :group options (on Unix, anyway).

Regards,

Dan


Daniel Berger 12-10-2008 11:25 PM

Re: Ruby equivalent to `find . -perm -g+rw -ls`
 


On Nov 17, 7:21=A0am, Bil Kleb <Bil.K...@gmail.com> wrote:
> Hi,
>
> I can't find a Ruby equivalent to
>
> =A0 find . -perm -g+rw -ls
>
> Currently, it looks like I'll need to combine,
>
> =A0 File.stat(file).mode
>
> with something like Hal Fulton's sym2oct,
>
> =A0http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/96956
>
> hacked into Daniel Berger'sfile-findgem,
>
> =A0http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/248981
>
> and require 'etc' to pull out the user and group names instead of uids
> and gids?
>
> Is there an alternative to all this yak shaving?


I just released file-find 0.2.4 which now does all your yak shaving
for you, i.e. it now supports symbolic permissions, too.

Regards,

Dan



All times are GMT. The time now is 04:23 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.