Help with script to automate CUPS printer installs
Good afternoon.
I'm rather new to bash scripting, and have probably bitten off a bit more than I can chew to be honest, but I work in a service desk-like environment where one of the main complaints is that it takes our staff a long time to set up network printers on our clients' servers. Being the only one who has dabbled in bash scripting previously, I have been given a task to make a script that will automate the creation of a number of entries in CUPS depending on a number of variables (in this case, manufacturer of printer, make of printer and how many printer trays will be installed). I've created a version that works for one make and model of printer, which works without issue.. The issue is where I've tried to give the users a "menu" of which models, manufacturers etc they can choose from.
Here is an initial snippet of the script, which is where I require the most help.. The end goal of this is to have three sections like this, one for each printer manufacturer, where the exact make and number of trays is chosen by the user - this will have the script choose which drivers etc to install.
My syntax might be horrid, and my tabulation maybe moreso, however please bear with me!
When running this, I'm getting a syntax error on line 181 (esac). Have I just messed up on my syntax, or is there something else amiss here?
You've gotten 17 ifs in your code snippet but 11 fis only, so I guess there sth. wrong with those. Taking a closer look, the if [ "$response" != "yes" ] seems to be missing one, but, more related to the syntax error that you quote, every if [ "$option-oki"...] has an unterminated if - elif - elif construct in it, which will bother bash if it reaches the esac statement. Pls correct and come back with the result.
BTW, did you consider bash's select statement to offer and read a selection? And, I'd prefer to put the respective options every printer offers into an option file that you can print out for selection and that you can easily adapt should a new printer model come in. Plus, why don't you collect e.g. all three-tray-printers into one single question (option_OKI between 1 and 6 -> ask for tray) and generate the printer driver name from the few variables read in answer?
Thanks for the speedy response. I'll go through my code and amend the unterminated if/elif statments first - am I correct in thinking I'll simply need to add the second fi in after the last elif? Eg:
If I'm wrong, apologies. I never thought of using select in all honesty, I (at least thought I) knew the if, so I decided to stick in my comfort zone. If it would make more sense using select, I'll look into that.
What do you mean by an options file? Sorry if I'm a bit slow.
I don't have a ready-to-use solution at hand, but I could imagine a file called OKIprinters contain the following lines with <TAB> separated columns:
, then a script containing
, and you could go on from there, selecting the trays, and then the drivers. If you got a new printer, add a line to your file(s), and it flies.
Hi,
I am running Linux box with
samba-3.0.33
cups-1.3.7
When I access my home folder through windows and give user credentials, it works well but shows all the printers icons as well.
I would like to hide them all from users. I tried changing Browsing On to Browsing Off in... (1 Reply)
I have a RHEL 4 (probably not important, but whatever) machine with a few dozen network printers set up in CUPS. I would like to replicate this on a second machine.
With lpinfo I'm able to get the queue name and device information (socket://ipaddress or whatnot), but I haven't get figured out... (0 Replies)
Just got an HP OfficeJet L7680 printer but there are no drivers for it in RHEL5. I just want to add the single driver without installing hplip 3.9.8. It's going to be connected with USB. Is this possible and if so how? (1 Reply)
I want to make a script to automate printer adding task.My inputs are like
Printer name : xyz
Port number :9001
I should write a script to make the Printer adding task will be automated.
Like in manually adding task we are doing through hppi or jetadmin tools.
---------- Post updated at... (2 Replies)
Hi all,
I am currently working on building a GUI to be interfaced with CUPS 1.3.4 package; In my GUI I have a list of printer manufacturers mapped
With various printer models ; and for a particular printer model selected I needed to know how to map that model with an Appropriate ppd file; as I... (0 Replies)
I am trying to use a here document to automate testing a perl script however when the perl script hits a system(perl subscript.pl) call, input is no longer entered into this subscript.
here is my script
$ cat test.sh
#ksh
for testcase
do
program <<-EOF | tee -a funcscnlog.log
y... (3 Replies)
I keep getting a access denied error when I install from the XP wizard my Linux shared printer.
CUPS CONFIGURATION FILE
<Location /admin>
#
# You definitely will want to limit access to the administration functions.
# The default configuration requires a local connection from a user who
#... (2 Replies)
I want to use my linux box as a print server for my hp printer. I downloaded the linux driver for the printer and installed it. I also configured CUPS and printed a test page with it. Samba is allowing my windows machine to see and install the printer, but when i try to print to it, nothing... (1 Reply)