Wacom Extension Attribute

Not applicable

Hi folks,

I seem to be suffering from a brain fart and can't locate info on creating an extension attribute for identifying Wacom tablets connected to units during inventory updates.
We did have one in place that I pulled from the list here but we seem to have lost it over the year and now I'm just stumped.

Can anyone share one you are using and/or pointers to where I can pick one up?
I'm looking though the resource kit from July and can't find any examples.. am I blind?

Nick Caro Senior Desktop Support Administrator

Phone +1 212-239-5741 Fax 212-946-4010 nick.caro at rga.com<mailto:nick.caro at rga.com>

R/GA 350 West 39th Street New York, NY 10018
www.rga.com<http://www.rga.com/> www.twitter.com/rga<http://www.twitter.com/rga> www.facebook.com/rga<http://www.facebook.com/rga>

The Agency for the Digital Age(tm)

38 REPLIES 38

stevewood
Honored Contributor II
Honored Contributor II

Nick I found an error in that script. Change this line:

tabletExists="system_profiler | grep WACOM"

To this:

tabletExists=system_profiler | grep WACOM

Steve Wood
Director of IT
swood at integer.com

The Integer Group | 1999 Bryan St. | Ste. 1700 | Dallas, TX 75201
T 214.758.6813 | F 214.758.6901 | C 940.312.2475

Not applicable

Perfect timing, I was just scratching my head cause all were coming back positive.

In the Extension Attribute setup page.

* Should "Data Type" be set to String or Integer?

Nick Caro Senior Desktop Support Administrator

stevewood
Honored Contributor II
Honored Contributor II

String, since the result coming back is Yes or No.
On Mon, Sep 19, 2011 at 2:09 PM, Nick Caro <Nick.Caro at rga.com> wrote:

Steve Wood
Director of IT
swood at integer.com

The Integer Group | 1999 Bryan St. | Ste. 1700 | Dallas, TX 75201
T 214.758.6813 | F 214.758.6901 | C 940.312.2475

stevewood
Honored Contributor II
Honored Contributor II

It was a script that I had thrown together last August:
On Mon, Sep 19, 2011 at 12:35 PM, Nick Caro <Nick.Caro at rga.com> wrote:

#!/bin/sh

tabletExists="system_profiler | grep WACOM"

if [ "$tabletExists" != "" ];

then
echo "<result>Yes</result>"
else
echo "<result>No</result>"
fi

exit 0

I would double check it to see if it still works as expected.

Steve Wood
Director of IT
swood at integer.com

The Integer Group | 1999 Bryan St. | Ste. 1700 | Dallas, TX 75201
T 214.758.6813 | F 214.758.6901 | C 940.312.2475

Not applicable

Many thanks!
I appreciate it the help.

Nick Caro Senior Desktop Support Administrator

sean
Valued Contributor

Cool! Well, at least, I imagine with a pair of Oakleys I would be cooler than with a bunch of sed lines :)

Sean

bentoms
Release Candidate Programs Tester

You'd imagine...

;P

Regards,

Ben.

tomt
Valued Contributor

Or a pair with a SED line etched into them.

------------------------------
Tom Tubbiola
Special Technical Services (STS Team)
Ttubbiola at oakley.com
949.900.7705

tlarkin
Honored Contributor

naw, he needs this etched into it

chown -R us /.base

it is a clever geeky unix joke

bentoms
Release Candidate Programs Tester

Just googled it.

Yep I was right... Do I win a coconut or something?

Regards,

Ben.

bkvines
New Contributor III

Somebody set us up the *.bom.

--
BKV

sean
Valued Contributor

You may find this useful!

Sean

#!/bin/bash

echo -n "<result>"

system_profiler SPUSBDataType | grep -B 3 -i wacom | awk 'NR%5==1' | sed -e 's/^[ ]//' | #sed -e 's/USB Bus://' | #sed -e 's/USB High-Speed Bus://' | sed -e 's/XD-0405-U/Intuos2 A6/g' | sed -e 's/XD-0405-R/Intuos2 A6/g' | sed -e 's/XD-0608-U/Intuos2 A5/g' | sed -e 's/XD-0608-R/Intuos2 A5/g' | sed -e 's/XD-0912-U/Intuos2 A4/g' | sed -e 's/XD-0912-R/Intuos2 A4/g' | sed -e 's/XD-1212-U/Intuos2 A4 Oversize/g' | sed -e 's/XD-1212-R/Intuos2 A4 Oversize/g' | sed -e 's/XD-1218-U/Intuos2 A3/g' | sed -e 's/XD-1218-R/Intuos2 A3/g' | sed -e 's/PTZ-430/Intuos3 A6/g' | sed -e 's/PTZ-431W/Intuos3 A6 Wide/g' | sed -e 's/PTZ-630/Intuos3 A5/g' | sed -e 's/PTZ-631W/Intuos3 A5 Wide/g' | sed -e 's/PTZ-930/Intuos3 A4/g' | sed -e 's/PTZ-1230/Intuos3 A4 Oversize/g' | sed -e 's/PTK-440/Intuos4 S/g' | sed -e 's/PTK-640/Intuos4 M/g' | sed -e 's/PTK-840/Intuos4 L/g' | sed -e 's/PTK-1240/Intuos4 XL/g' | sed -e 's/CTH-460/Bamboo Pen&Touch/g' | sed -e 's/CTH-461/Bamboo Craft/g' | sed -e 's/CTH-661/Bamboo Fun Pen&Touch/g' | sed -e 's/DTZ-1200W/Cintiq-12WX Intuos3/g' | sed -e 's/DTZ-2100/Cintiq-21UX Intuos3/g' | sed -e 's/DTK-1200W/Cintiq-12WX Intuos4/g' | sed -e 's/DTK-2100/Cintiq-21UX Intuos4/g' | sed -e '/^$/d' | sed -e 's/(.)./1/'

echo "</result>"

Not applicable

W o W !!!

That is awesome!

Thank you.

Nick Caro Senior Desktop Support Administrator

sean
Valued Contributor

:)

tomt
Valued Contributor

What Nick said, thanks for this.

------------------------------
Tom Tubbiola
Special Technical Services (STS Team)
Ttubbiola at oakley.com
949.900.7705

jwojda
Valued Contributor II

Wow is right!

So we just add the ext attribute as a script and string and then run
inventory recons?

John Wojda

Lead System Engineer, DEI & Mobility

3333 Beverly Rd. B2-338B

Hoffman Estates, IL 60179

Phone: (847)286-7855

Page: (224)532.3447

Team Lead DEI: Matt Beiriger
<mailto:mbeirig at searshc.com;jwojda at searshc.com?subject=John%20Wojda%20Fe
edback&body=I%20am%20contacting%20you%20regarding%20John%20Wojda.>

Team Lead Mobility: Chris
<mailto:cstaana at searshc.com;jwojda at searshc.com?subject=John%20Wojda%20Fe
edback&body=I%20am%20contacting%20you%20regarding%20John%20Wojda.> Sta
Ana

Mac Tip/Tricks/Self Service & Support
<http://bit.ly/gMa7TB>

"Any time you choose to be inflexible in your approach to an
unpredictable project you are already building failure into your plan"

sean
Valued Contributor

Don't suppose that's worth a free pair of Oakley's

;)

Sean

tomt
Valued Contributor

Anything is possible. :-)

tlarkin
Honored Contributor

haha nice sed wizardry there

jwojda
Valued Contributor II

If I may be so bold to ask - what are the various commands? The man
page only tells so much (almost all of it over my head) - a real script
is easier to relate to why you chose particular commands over others.
I'm seeing a lot of / and 's and NR%5 ... but I don't know understand
the logic behind them. It would be good to know so as new Wacoms come
out I can continue to update the info to reflect newer hardware.

system_profiler SPUSBDataType | grep -B 3 -i wacom | awk 'NR%5==1' |

sed -e 's/^[ ]*//' |

#sed -e 's/USB Bus://' |

#sed -e 's/USB High-Speed Bus://' |

sed -e 's/XD-0405-U/Intuos2 A6/g' |

John Wojda

Lead System Engineer, DEI & Mobility

3333 Beverly Rd. B2-338B

Hoffman Estates, IL 60179

Phone: (847)286-7855

Page: (224)532.3447

Team Lead DEI: Matt Beiriger
<mailto:mbeirig at searshc.com;jwojda at searshc.com?subject=John%20Wojda%20Fe
edback&body=I%20am%20contacting%20you%20regarding%20John%20Wojda.>

Team Lead Mobility: Chris
<mailto:cstaana at searshc.com;jwojda at searshc.com?subject=John%20Wojda%20Fe
edback&body=I%20am%20contacting%20you%20regarding%20John%20Wojda.> Sta
Ana

Mac Tip/Tricks/Self Service & Support
<http://bit.ly/gMa7TB>

"Any time you choose to be inflexible in your approach to an
unpredictable project you are already building failure into your plan"

tlarkin
Honored Contributor

there are whole books dedicated to awk and sed. They basically
manipulate text and strings and are very powerful binaries. You can do
comparisons, mathematics, regex, substitution/manipulation, and so much
more. These two commands are basically a whole programming language with
in itself. I own this book and suggest it to anyone wanting to learn
more.

http://shop.oreilly.com/product/9781565922259.do

For the geek history of it, sed stands for stream editor and awk stands
for: Aho, Weinberger and Kerrighan which are the last names of the 3
dudes that developed it. The command `grep` actually comes from sed,
because grep used to be a very popular switch used with sed to pull out
strings with in a data set, g/re/p was a common string in sed, which
was for global regular expression print. Thankfully wikipedia is
around to teach me these things!

-Tom

sean
Valued Contributor

If you have more than one device connected (some of our users have Cintiqs and standard tablets) then you'd have an output like:

system_profiler SPUSBDataType | grep -B 3 -i wacom

XD-0608-U:

Product ID: 0x0042 Vendor ID: 0x056a (WACOM Co., Ltd.) -- PTZ-630:

Product ID: 0x00b1 Vendor ID: 0x056a (WACOM Co., Ltd.)

awk 'NR%5==1'

lists the 1 line of each block of 5

So

system_profiler SPUSBDataType | grep -B 3 -i wacom | awk 'NR%5==1' XD-0608-U: PTZ-630:

If you ran

awk 'NR%5==3' instead

then you'd get every 3rd line of output of each block of 5

system_profiler SPUSBDataType | grep -B 3 -i wacom | awk 'NR%5==3' Product ID: 0x0042 Product ID: 0x00b1

sed -e 's/^[ ]*//'

remove leading whitespace

These are hashed out, so aren't doing anything anymore

#sed -e 's/USB Bus://'

#sed -e 's/USB High-Speed Bus://'

but they are replacements. So

sed 's/hello/goodbye/'

will replace the first hello with goodbye

whilst sed 's/hello/goodbye/g'

will remove all instances of hello with goodbye

So from all of that,

s ed -e 's/XD-0405-U/Intuos2 A6/g'

replaces " XD-0405-U" with " Intuos2 A6" (notice the back slash to escape spaces)

Then | (pipe) one line into the next.

Rather that having one massive list though, you can use and then return to a new line to make it neater.

So,

system_profiler SPUSBDataType | grep -B 3 -i wacom | awk 'NR%5==1' | sed -e 's/^[ ]*//'

Is the same as writing

system_profiler SPUSBDataType | grep -B 3 -i wacom | awk 'NR%5==1' | sed -e 's/^[ ]*//'

Google sed or awk oneliners. Very useful pages to start with.

I do the same with SDI/HD Video IO cards too. Which reminds me, I need to check out the unknowns!

#!/bin/bash

echo -n "<result>"

system_profiler SPPCIDataType | grep -B 2 "Type: Video" | sed 's/ //g' | grep '^pci' | sed -e 's/pci10b5,a100:/Decklink Pro/' | sed -e 's/pcibdbd,a11b:/Decklink SDI/' | sed -e 's/pcibdbd,a117:/Decklink Intensity Pro/' | sed -e 's/pcif1d0,c0ff:/AJA Kona 3/' | sed -e 's/pcibdbd,a121:/Unknown/' | sed -e 's/pcibdbd,a10b:/Blackmagic Unknown/'

echo "</result>"

Sean

sean
Valued Contributor

sed 's/My shades/Oakleys/g'

:)

SeanA
Contributor III

Sean,

Kudos for both the script and the explanation; my sed IQ has increased exponentially!

One question: if a computer does have more than one Wacom device connected, then how does it populate the Extension Attribute (I am trying to visualize how each device would be a separate variable if it populates a single attribute)?

Thanks again!

Sean
~~~~~~~~~
Sean Alexander
Desktop Analyst
Macintosh Services Delivery
Lockheed Martin - Enterprise Business Services
~~~~~~~~~

sean
Valued Contributor

The script output in Casper has a return <BR> that the Extension Attribute obeys and each item will appear in a list. I do a similar thing for graphics cards and I get:

Graphics Card: ATI Radeon HD 4870 NVIDIA Quadro 4000

Disappointingly, if you view this on the main Inventory page, then you get a display like:

ATI Radeon HD 4870<BR>NVIDIA Quadro 4000

since this page isn't obeying the return. I've put in a bug fix, but unless it is in the very latest build, Jamf still haven't fixed this. Anyone else annoyed by this please add a bug report to get it fixed.

So it is one variable, but each item is separated by a return. In fact, the appearance of multiple lines in Extension Attributes was better in version 7.x, as the Title would appear in line with the top item. They have changed this to centre, making our memory one look like:

Memory Banks: DIMM 1: 2 GB 0x26302779 DIMM 2: 2 GB 0x2690277B DIMM 3: Empty Empty DIMM 4: Empty Empty DIMM 5: 2 GB 0x2690272A DIMM 6: 2 GB 0x26202770 DIMM 7: Empty Empty DIMM 8: Empty Empty

When this is in a list of attributes that each have several lines, it isn't the easiest to read. Put in a feature request to revert the style sheet, but again no change yet. Report this too, go on!

No doubt both of these display issues are in style sheets on the server that I could edit, but then each update would mean re-writing their style sheet each time.

Sean

donmontalvo
Esteemed Contributor III

Hi Sean,

We've got an Extension Attribute that returns MUD sizes. Ran into the same problem. The output is a nearly non-readable blob for our techs and analysts....

CURRENT RESULT:

jdoe 23M /Users/jdoe/Documents/Microsoft User Data/Office 2008 Identities/Main Identity/Database<BR>asmith 258M /Users/asmith/Documents/Microsoft User Data/Office 2004 Identities/asmith/Database<BR>bjones 21M /Users/bjones/Documents/Microsoft User Data/Office 2008 Identities/Main Identity/Database

DESIRED RESULT:

jdoe 23M /Users/jdoe/Documents/Microsoft User Data/Office 2008 Identities/Main Identity/Database
asmith 258M /Users/asmith/Documents/Microsoft User Data/Office 2004 Identities/asmith/Database
bjones 21M /Users/bjones/Documents/Microsoft User Data/Office 2008 Identities/Main Identity/Database

We reported this to JAMF about a year or so ago, but I'll ping them to support your bug report. Extension Attributes are incredibly useful (best thing since dummy receipts!) and as our techs and analysts rely more and more on this kind of inventory data, it gets more and more crucial to get the <BR> issue resolved.

Don

--
https://donmontalvo.com

jwojda
Valued Contributor II
sed -e 's/XD-0405-U/Intuos2 A6/g' | sed -e 's/XD-0405-R/Intuos2 A6/g' | sed -e 's/XD-0608-U/Intuos2 A5/g' | sed -e 's/XD-0608-R/Intuos2 A5/g' | sed -e 's/XD-0912-U/Intuos2 A4/g' |

Sean,

Where did you find these to list them out?

sean
Valued Contributor

My list came from a couple of sources. Some would be tablets we already had and others were I think probably from wacoms website. Do you think they are wrong?

Think I may have pulled the model codes from:
http://www.wacom-asia.com/download/manuals/index.html

adthree
New Contributor III

Once again Sean is the sed wizard, thanks again for the display output attribute!

I can't give you free gear but I'll gladly give you a Columbia Sportswear employee pass, contact me off board and we can exchange info! Twitter feed URL is in profile.

I will add this to our attribute list tomorrow!

adthree
New Contributor III

If you haven't seen it in one of the most recent JAMF Nation digests Sean updated a separate thread with a fix, posting this here for archive purposes and for any new comers.

For anyone that hasn't noticed yet, the new wacom tablet reports the correct name, so no need to amend my EA script to do more replacements. However, the grep for wacom now comes up with a false positive. Easy fix, just change the line: system_profiler SPUSBDataType | grep -B 3 -i wacom | awk 'NR%5==1' | to read: system_profiler SPUSBDataType | grep -B 3 WACOM | awk 'NR%5==1' | Sean

jwojda
Valued Contributor II

Hmm with casper 8.43 this worked, After I got 8.51 loaded this is now broken.
/private/tmp/extensionAttributeScript: line 7: : command not found

carlo_anselmi
Contributor III

Hello everyone, resurrecting a very old thread...
I was wondering if any kind soul had an updated script/extension attribute to collect Wacom tablets on inventory.
I could not find anything related on Jamf Nation
I have tried the above but does not seem to work on 10.13.6
Many thanks and have a great weekend everyone!
Carlo

jrippy
Contributor II

@carlo.anselmi I didn't look at the whole thread, but the one a few comments above by @adthree still works for me in 10.13.6:

#!/bin/sh
system_profiler SPUSBDataType | grep -B3 -i wacom | awk 'NR%5==1'

I left off the pipe (|) and backslash () at the end of that as I ran that command independently. Those are needed if you are continuing the command onto another line.

For me, this resulted in an output of

    Intuos PS:
      Version: 1.00

You'd have to echo that result to fill in the extension attribute, of course.
You know, I don't have this in my environment but I might just implement it.

jrippy
Contributor II

I've looked over @sean's stuff.
He is obviously (was obviously) working with computers that had multiple tablets connected and he needed to know which tablets were on which computer.
Where I am, that is definitely not an issue for me.
As such, a simpler EA could just be to return True or False if a tablet is connected.

#!/bin/bash

result="False"
# If the result of this command is not null (-n), then a Wacom tablet was found.
if [[ -n "$(system_profiler SPUSBDataType | grep -i wacom)" ]]; then
    result="True"
fi

echo "<result>$result</result>

If you need the model name, you could do something like this:

#!/bin/bash
result="No tablet connected"
# Get the USB data from system_profiler, then search (regex) for Wacom.  Grab the first entry (head -1) and remove the leading whitespace and trailing colon (2 sed commands).
result="$(system_profiler SPUSBDataType | grep -B3 -i wacom | head -1 | sed "s/^[ 	]*// | sed "s/:$//")"

echo "<result>$result</result>"

Alternatively, possibly to address Sean's initial workflow, you could get additional models.
NOTE: I haven't tested this on an actual machine, just in simulated input.

#!/bin/bash
result="No tablet connected"
# Get the USB data from system_profiler, then search (regex) for Wacom.  Grab the first line of each entry (2 awk commands) and remove the leading whitespace and trailing colon (2 sed commands).
# The first awk is based on Sean's script.  The output is broken down into 5 line chunks and he is pulling the first line of those chunks.
# That gives you the model name and version number per each device connected.
# The second awk gives you just the model name per each device connected. (2 line chunks getting the first line of each).
result="$(system_profiler SPUSBDataType | grep -B3 -i wacom | awk 'NR%5==1' | awk 'NR%2==1' | sed "s/^[ 	]*//" | sed "s/:$//")"

echo "<result>$result</result>"

carlo_anselmi
Contributor III

@jrippy
Awesome! Where can I send you some beer? :-)
I am testing the last script and it reports back the commercial name and/or model (like CTL-something) correctly
Waiting for all clients to run recon, so far I have only a couple of machines I need to manually double check since the result is

Current Required (mA): 20 Serial Number: ############

(#s above are numbers)

Anyway, thank you again!
Have a great weekend everyone
Carlo

EDIT: maybe those are "false positive" and just external USB drives?

pete_c
Contributor III

I'm still using this with hosted 10.7.1, works fine as best I can tell:

#!/bin/sh

# updated to take advantage of less than operator when reporting integer as result instead of string
# but that didn't work since the value reports with two decimal points and a hyphen, i.e. "6.3.27-2"

version=$(/usr/bin/defaults read /Library/PreferencePanes/WacomTablet.prefpane/Contents/Info.plist CFBundleShortVersionString | sed 's/Wacom v//g')

echo "<result>$version</result>"

jrippy
Contributor II

@carlo.anselmi It could be that some of those are wireless adapters for tablets, perhaps?
Some of the numbers with awk might need to be adjusted. Take the command and just remove the pipes and extra commands after the grep statement and you can see what the full output would be, then maybe adjust accordingly.

@pete_c That works great if the software is installed (and it should be). I have noticed these tablets still work as input devices without software as well. I guess it depends on the needs for the EA. You could theoretically scope the software install based on the EA output so you might want the output from system_profiler.
But if you guarantee that the software is installed, that should be awesome and easier.

carlo_anselmi
Contributor III

@jrippy and @pete_c and @sean
many thanks indeed, sorry for the delay in getting back
Putting all together now I can collect the tablet model name with

#!/bin/bash
result="No tablet connected"
# Get the USB data from system_profiler, then search (regex) for Wacom.  Grab the first line of each entry (2 awk commands) and remove the leading whitespace and trailing colon (2 sed commands).
# The first awk is based on Sean's script.  The output is broken down into 5 line chunks and he is pulling the first line of those chunks.
# That gives you the model name and version number per each device connected.
# The second awk gives you just the model name per each device connected. (2 line chunks getting the first line of each).
result="$(system_profiler SPUSBDataType | grep -B3 -i wacom | awk 'NR%5==1' | awk 'NR%2==1' | sed "s/^[ 	]*//" | sed "s/:$//")"

echo "<result>$result</result>"

Then the model identifier (code name) with

#!/bin/bash 

echo -n "<result>" 

system_profiler SPUSBDataType | grep -B 3 -i wacom | sed -e 's/^[ 	]*//' | awk 'NR%5==1' |
#sed -e 's/USB Bus://' |
#sed -e 's/USB High-Speed Bus://' |
sed -e 's/XD-0405-U/Intuos2 A6/g' |
sed -e 's/XD-0405-R/Intuos2 A6/g' |
sed -e 's/XD-0608-U/Intuos2 A5/g' |
sed -e 's/XD-0608-R/Intuos2 A5/g' |
sed -e 's/XD-0912-U/Intuos2 A4/g' |
sed -e 's/XD-0912-R/Intuos2 A4/g' |
sed -e 's/XD-1212-U/Intuos2 A4 Oversize/g' |
sed -e 's/XD-1212-R/Intuos2 A4 Oversize/g' |
sed -e 's/XD-1218-U/Intuos2 A3/g' |
sed -e 's/XD-1218-R/Intuos2 A3/g' |
sed -e 's/PTZ-430/Intuos3 A6/g' |
sed -e 's/PTZ-431W/Intuos3 A6 Wide/g' |
sed -e 's/PTZ-630/Intuos3 A5/g' |
sed -e 's/PTZ-631W/Intuos3 A5 Wide/g' |
sed -e 's/PTZ-930/Intuos3 A4/g' |
sed -e 's/PTZ-1230/Intuos3 A4 Oversize/g' |
sed -e 's/PTK-440/Intuos4 S/g' |
sed -e 's/PTK-640/Intuos4 M/g' |
sed -e 's/PTK-840/Intuos4 L/g' |
sed -e 's/PTK-1240/Intuos4 XL/g' |
sed -e 's/PTK-450/Intuos5 touch Small/g' |
sed -e 's/PTH-650/Intuos5 touch Medium/g' |
sed -e 's/PTH-850/Intuos5 touch Large/g' |
sed -e 's/CTH-460/Bamboo Pen&Touch/g' |
sed -e 's/CTH-461/Bamboo Craft/g' |
sed -e 's/CTH-661/Bamboo Fun Pen&Touch/g' |
sed -e 's/CTL-470/Bamboo Connect/g' |
sed -e 's/CTL-471/Bamboo Splash/g' |
sed -e 's/CTH-470/Bamboo Capture/g' |
sed -e 's/CTH-670/Bamboo Create/g' |
sed -e 's/DTZ-1200W/Cintiq-12WX Intuos3/g' |
sed -e 's/DTZ-2100/Cintiq-21UX Intuos3/g' |
sed -e 's/DTK-1200W/Cintiq-12WX Intuos4/g' |
sed -e 's/DTK-2100/Cintiq-21UX Intuos4/g' |
sed -e '/^$/d' |
sed -e 's/(.*)./1/'

echo "</result>"

and the driver version with

#!/bin/sh

# updated to take advantage of less than operator when reporting integer as result instead of string
# but that didn't work since the value reports with two decimal points and a hyphen, i.e. "6.3.27-2"

version=$(/usr/bin/defaults read /Library/PreferencePanes/WacomTablet.prefpane/Contents/Info.plist CFBundleShortVersionString | sed 's/Wacom v//g')

echo "<result>$version</result>"