Created
December 4, 2013 02:28
-
-
Save Stantheman/7781280 to your computer and use it in GitHub Desktop.
Someone in #climagic on freenode said they wanted every command to automatically be pumped into @busyloop 's lolcat repo (https://github.com/busyloop/lolcat). This is the work in progress. Works fine, just plop into place, there's a package for perl fuse in Debian. Set PATH=/opt/stan/badidea (or wherever) and have cool colors. stage 2 would be t…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
use strict; | |
use warnings; | |
use Data::Printer; | |
use Fuse; | |
my $mountpoint='/opt/stan/badidea'; | |
Fuse::main( | |
mountpoint=>$mountpoint, | |
mountopts=>"allow_other", | |
getattr=>"main::getattr", | |
readlink=>"main::readlink", | |
getdir=>"main::getdir", | |
open => "main::open", | |
read=>"main::read", | |
); | |
sub filename_fixup { | |
my ($file) = shift; | |
$file =~ s,^/,,; | |
$file = '.' unless length($file); | |
return $file; | |
} | |
sub getattr { | |
my $filename = shift; | |
# $dev,$ino,$modes,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks | |
if ($filename eq '/') { | |
return (0, 0, 0040777, 1, 0, 0, 0, 0, 0, 0, 0, 4096, 0); | |
} else { | |
return (0, 0, 0100777, 1, 0, 0, 0, 400, 0, 0, 0, 4096, 0); | |
} | |
} | |
sub readlink { | |
my $path = shift; | |
return $path; | |
} | |
sub getdir { | |
return ('.', 0); | |
} | |
sub read { | |
my ($file) = filename_fixup(shift); | |
return qq{#!/usr/bin/perl | |
use strict; | |
use warnings; | |
my \$input = join(' ', \@ARGV); | |
exec "PATH='/usr/local/bin:/usr/bin:/bin:/usr/games' $file \$input | /var/lib/gems/1.8/bin/lolcat"; | |
}; | |
} | |
sub open { | |
return (0); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment