Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37040068
en ru br
ALT Linux repos
S:20200207-alt1
D:20080605-alt2
5.0: 20081207-alt1
4.1: 20080923-alt1
4.0: 20080806-alt1.M40.1
+backports:20060523-alt0.9
3.0: 1.59-alt1
+backports:20060523-alt0.1.M30.1

Group :: System/Kernel and hardware
RPM: foo2zjs

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

#!/usr/bin/perl -w
#
# Copyright 2007, Rusetsky Dmitry (dimania@mail.ru) All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of either:
#
# a) the GNU General Public License as published by the Free Software
# Foundation; either version 1, or (at your option) any later
# version, or
#
# b) the "Artistic License" which comes with Perl.
#
# On Debian GNU/Linux systems, the complete text of the GNU General
# Public License can be found in `/usr/share/common-licenses/GPL' and
# the Artistic Licence in `/usr/share/common-licenses/Artistic'.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
#########################################################################
#
# Programm load firmware to Host based Printers over printserver Dlink DP-301U
#
# Usage: fwload4dlink [user[:password]@]host <firmware>
#
# Prereq: Net::FTP, LWP::UserAgent
# Version: 0.01
#
#########################################################################

use strict;
use warnings;

use Net::FTP;
use LWP::UserAgent;




our $VERSION;

$VERSION = '0.01';

#initial stuff
my ($username, $password, $host);

#get command line arguments
my $pr_status = 0;
my @opts = grep /^-/, @ARGV;
my @other = grep /^[^-]/, @ARGV;
my $server = shift @other;
my $firmware = shift @other;

my @arg_opts = map { split( /=/, $_ ) } grep( /=/, @opts);
my %arg_opts = (
"--timeout" => "300",
"--port" => "21",
@arg_opts,
);
map { $arg_opts{$_}++ } grep /^[^=]+$/, @opts;

if ($arg_opts{"-h"} || $arg_opts{"--help"}) {
print join "", <DATA>;
exit(0);
}

unless (defined $firmware && defined $server) {
print("$0 [user[:password]@]host <firmwire file>\n");
exit 1;
}

print "fwload4dlink $VERSION - 2007 (c) by Dimania <dimania\@mail.ru>\n";

my $timeout = $arg_opts{"--timeout"};
my $port = $arg_opts{"--port"};

#split them

my (@parts) = split /@/, $server;
my ($left, $right);
if (@parts <= 2) {
($left, $right) = @parts;
} else {
$right = pop @parts;
$left = join '@', @parts;
}

unless (defined $right) {
$right = $left;
undef $left;
}

($username, $password) = split /:/, $left if defined $left;
$host = $right if defined $right;

unless ( defined $username ) { $username = ""; }
unless ( defined $password ) { $password = ""; }

# Get status printer

my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0");

# Create a request
#print "http://$username:$password\@$host";
my $req = HTTP::Request->new(GET => "http://$username:$password\@$host");

# Pass request to the user agent and get a response back
my $res = $ua->request($req);

# Check the outcome of the response
if ($res->is_success) {
#print $res->content;
my @string;
@string = split /\r\n/, $res->content;
my $i=0;

while( defined( $string[$i] ) )
{
if ( $string[$i] =~ /Printer Status.*:.*On.*line.*/ )
{
print "Printer On line\n"; $pr_status=1; last;
}
if ( $string[$i] =~ /Printer Status.*:.*Off.*line.*/ )
{
print "\nYour printer is Off line! Please Turn ON printer and try again.\n";
#print "Printer Off line\n";
$pr_status=0;
exit;
}
$i++;
}
}
else {
print $res->status_line, "\n";
exit;
}

#make the connection by ftp

my $ftp;
$ftp = new Net::FTP($host, Debug => 0, Passive => 0, Port => $port);
$ftp or die "Couldn't make FTP connection to $host on port $port: $@!\n";

$ftp->login($username, $password) or
die "Login failure!\n";

$ftp->binary;

print "Successfully logged into $host\n";

my @files = $ftp->dir();
#map { $_ =~ s|^/|| } @files;
print "\nFiles: @files\n";


# Load firmware

my $status = $ftp->put($firmware,"USB1");

unless (defined $status)
{
print "\nError load firmware to printer on port @files\n";
}
else
{
print "\nLoad firmware to printer on port @files sucessful!\n";
}


my @status = $ftp->quit();



__DATA__

This programm load firmware to Host based Printers over printserver Dlink DP-301U

Usage: fwload4dlink [user[:password]@]host <firmware>


Examples:

fwload4dlink printserver1.org lj1010.dl


 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin