01-17-2012
Adobe application cleanup
I am trying to come up with a universal way of cleaning up after CS5 (and 5.5) installs. The history is this: adobe has a deployment tool called AAMEE that lets you re-package items and deploy them. Unfortunately it's very messy and leaves Application folders (and pieces of the apps) that do not belong.
Here's a more specific example:
Install After effects using package built with AAMEE.
Case 1:
Install After Effects.pkg. (Should only install "/Applications/Adobe After Effects CS5/")
Unfortunately it also adds
"/Applications/Adobe Premier Pro CS5/Adobe Premier Pro CS5.app/" (and a bunch of other app folders, but we will focus on Premier)
The problem is that if Premier was not already installed, the .app bundle is broken. I want to remove the Premier folder and contents from /Applications Simple...remove the directory via a posflight script, unix command, etc. BUT, if only it were that simple.
Case 2:
Install Premier.pkg (AAMEE package)
Install After Effects.ppkg (AAMEE package)
If I fixed this the "easy way", I would have just deleted the desired Premier Pro application. Not my intended effect. This is just one folder example. There are many more (onlocation, soudbooth, etc). So, I started thinking "How do I know which directories are intentional and which ones are unintentional due to AAMEE not being all that smart?"
The only thing I can find is that EVERY that lack lacks info.plist in the app bundle (if the .app bundle even exists) in $appname.app/Contents/Info.plist is bad. If I loop though Applications looking for CS5 folders, then I should be able to figure out which CS5 folders contain working apps.
A working app always has Info.plist which exists in /Applications/"$AppName"\ CS5/"$AppName".app/Contents
It does not exist in"/Applications/Adobe Premiere Pro CS5/Adobe Premiere Pro CS5.app/Contents/" (which was a "bad" install by AAMEE)
If that is true for all unintended of the bad installs, then this should be easy to script. I just can't figure out how. I want to loop through /Applications finding every folder with CS5 in it. Then in each of those folders, check for the existence of $basepath/Contents/Info.Plist. If it's there, then the folder stays. If it's not, then delete the AppFolder from /Applications. I don't want to supply a list of every app. I'd like to find all CS5 folders, work out the path and appname, then loop though each one testing for the existence of $AppPath/Contents/Info.plist. If it doesn't exist, delete the base CS5 folder in /Applications
Some notes:
The App is always named the same as the base folder. (eg. "/Applications/Adobe Illustrator CS5" will always contain the application "Adobe Illustrator CS5.app").
Info.plist is always in $app/Contents/
Anyone interested in helping me solve this?
7 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
What is the correct procedures to clean up /var/spool/mqueue? Any help appreciated. This directory gets really clogged up at times. :( :( (1 Reply)
Discussion started by: thomi39
1 Replies
2. AIX
Hello
I have many old IDs on my AIX and would like to know the
simplest way of knowing the last time an ID was used.
I am familiar with the "last" command.
Thanks for any info :) (1 Reply)
Discussion started by: MILLERJ62
1 Replies
3. Shell Programming and Scripting
I am trying to add a unique string to a variable to prevent some name space collisions.
DATAFILE=/u001/app/unica/affinium644/campaign/partitions/limited/tmp/ebf9aaah.t~#
DATETIME=`date +%Y%m%d_%H%M%S`
echo $DATAFILE > tmpnme.txt
sed 's_/_ _g' tmpnme.txt > tmpnme2.txt
DATA=$(cat tmpnme2.txt)... (2 Replies)
Discussion started by: whdr02
2 Replies
4. Shell Programming and Scripting
Hi!
I would like to write a script which remove some files, all beginning with the same prefix :
prefix.1
doc/prefix.2
../prefix.3
etc.
So, I would create a file and chmod it executable. But I dont know how to pass a variable to a script. I would like to write something like
... (2 Replies)
Discussion started by: tipi
2 Replies
5. Solaris
Hi All,
I have this script for linux on cleaning up orphaned folder. But I need to use this on solaris 8/9/10
for user in $(ls | grep -v lost+found) ; do
id $user >/dev/null 2>&1
if ]
then
ls -ld $user
grep $user /etc/passwd
fi
done
Can someone please convert this script? ... (1 Reply)
Discussion started by: itik
1 Replies
6. Programming
I'm trying to do some cleanup (write open files) when Linux shuts down. I thought the right method would be to trap SIGTERM and do the necessary processing. Here's my sample code:
#include <stdio.h> // for File I/O
#include <signal.h> // for signals
#include <unistd.h> // for sleep()
void... (6 Replies)
Discussion started by: whatisron
6 Replies
7. Red Hat
I have a server running redhat 5.5 and it has one SAN device presented to it as LUN9. How can I clean up the remaining entries. I cannot afford to interupt the service. Please assist.
# multipath -l
mpath0 (36000097000019260298953666633436) dm-11 EMC,SYMMETRIX
\_ round-robin 0
\_ 2:0:0:9 ... (2 Replies)
Discussion started by: Tirmazi
2 Replies
LEARN ABOUT MOJAVE
tklib_history
history(n) Provides a history for Entry widgets history(n)
__________________________________________________________________________________________________________________________________________________
NAME
history - Provides a history for Entry widgets
SYNOPSIS
package require Tcl 8.4
package require Tk 8.4
package require history ?0.1?
::history::init pathName ?length?
::history::remove pathName
::history::add pathName text
::history::get pathName
::history::clear pathName
::history::configure pathName option ?value?
bell
_________________________________________________________________
DESCRIPTION
This package provides a convenient history mechanism for Entry widgets. The history may be accessed with the up and down arrow keys.
::history::init pathName ?length?
Arranges to remember the history of the named Entry widget. An optional length determines the number of history entries to keep.
This may be changed later with ::history::configure. History entries must be added with the ::history::add command before they can
be seen.
::history::remove pathName
Forgets all history entries for the Entry pathName and removes the history bindings.
::history::add pathName text
This command is used to add history entries to an Entry that has previously had ::history::init called on it. This command should be
called from your Entry handler with the contents of the entry (or whatever you wish to add to the history).
::history::get pathName
This command returns a list containing the history entries for the Entry pathName
::history::clear pathName
This command clears the history list for the named Entry.
::history::configure pathName option ?value?
This command queries or sets configuration options. Currently the options recognized are length and alert. Setting the length deter-
mines the number of history entries to keep for the named Entry. Alert specifies the command to run when the user reaches the end of
the history, it defaults to
bell
entry .e
bind .e <Return> [list ProcessEntry %W]
::history::init .e
pack .e
proc ProcessEntry {w} {
set text [$w get]
if {$text == ""} { return }
::history::add $w $text
puts $text
$w delete 0 end
}
KEYWORDS
entry, history
history 0.1 history(n)