This file is indexed.

/usr/bin/avopkg is in avogadro 1.0.3-10.1+b2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#!/bin/sh

#  Avogadro Package Manager v 1.0
#  Copyright (C) 2010 Konstantin Tokarev
#
#  For more information about Avogadro, see
#  <http://avogadro.openmolecules.net/>
#
#  Permission to use, copy, modify, distribute, and sell this software and its
#  documentation for any purpose is hereby granted without fee, provided that
#  the above copyright notice appear in all copies and that both that
#  copyright notice and this permission notice appear in supporting
#  documentation.
#
#  The above copyright notice and this permission notice shall be included in
#  all copies or substantial portions of the Software.

PREFIX="/usr"
LIB_DIR="lib"
PLUGIN_DIR="avogadro/1_0"
PYTHON_ENABLED="ON"
IS_UNIX="1"
IS_MAC=""

PACK_CMD="tar czf"
EXTRACT_CMD="tar xzf"

# Helper functions

# /**
#  * Returns value of variable from package configuration
#  * @param $1 package description file name
#  * @param $2 variable name
#  * @returns variable value (may NOT contain spaces!)
#  */
getVar()
{
    #extract last field of string using ' ' as delimiter
	echo `cat $1 | grep $2 | awk '{print $NF}'`
}

# /**
#  * Returns value of multi-string variable from package configuration
#  * @param $1 package description file name
#  * @param $2 variable name
#  * @returns variable value (may contain spaces!)
#  */
getMultiVar()
{
    #extract last field of string using ':' as delimiter
	echo `cat $1 | grep $2 | awk -F':' '{print $NF}'`
}

# /**
#  * Returns value of boolean variable from package configuration
#  * @param $1 package description file name
#  * @param $2 variable name
#  * @returns 0 if string $2 was found in file $1
#  */
getBoolVar()
{
    #exit 0 if file contains string $2    
    echo test x`cat $1 | grep $2` != x
    #echo $?
}

# Main script

echo "Avopkg v1.0"
if test "$1" = "-pack"
then
            ########## Create package ########## 
    if test -e $2
    then        
        echo "Building package for $(getMultiVar $2 Name) ..."
    else
        echo "Usage: $0 -pack filename"
        echo "Type 'man avopkg' for more details"
        exit 0
    fi
    
    
    #echo Package files: $files
    # Use tar.gz compression
    package=$(getVar $2 Package)
    files="$(getMultiVar $2 Files)"
    rm -rf .tmp
    mkdir -p .tmp/$package
    cp $2 .tmp/$package/$package.mf    
    cp -t .tmp/$package $files # Will fail if some file is missing
    cd .tmp
    $PACK_CMD ../$package.avo $package
    cd ..
    rm -rf .tmp
    echo Done!
else
            ########## Install package ########## 

    if test -e $1
    then
        package=`basename $1 .avo`
        echo Unpacking $1...           
    else
        echo "Usage: $0 filename"
        echo "Type 'man avopkg' for more details"
        exit 0
    fi

    # Create temporary dir and unpack content
    rm -rf .tmp
    mkdir .tmp
    cd .tmp
    $EXTRACT_CMD ../$1
    if ! test $? = 0
    then
        echo "$1 is not an Avogadro plugin package!"
        echo "Installation failed."
        exit 1
    fi

    # Check manifest
    cd $package
    manifest=$package.mf
    if ! test -f $manifest
    then
        echo "Manifest $manifest is missing in package!"
        echo "Installation failed."
        exit 1
    fi

    # Find out where to install package
    if ($(getBoolVar $manifest Python))
    then
        #Check Python support in Avogadro
        if test $PYTHON_ENABLED = "OFF"
        then
            echo "Plugin $package needs Python, but Avogadro was compiled"
            echo "without Python support. To install and use this plugin, you need to change CMake"
            echo "option ENABLE_PYTHON to ON value, resolve dependencies and re-compile Avogadro"
            echo
            echo "Installation failed."
            exit 1
        fi
        
        echo -n Installing Python plugin $package
        if test $USER = root
        then
            echo " for all users..."
            dest="$PREFIX/share/libavogadro/$(getVar $manifest Category)Scripts"
        else
            echo " for user $USER"
            if test "$IS_MAC" = 1
            then
                dest="$HOME/Library/Application Support/Avogadro/$(getVar $manifest Category)Scripts"
            else
                dest="$HOME/.avogadro/$(getVar $manifest Category)Scripts"
            fi
        fi
    else       
        echo -n Installing plugin $package
        if test $USER = root
        then
            echo " for all users..."
            dest="$PREFIX/$LIB_DIR/$PLUGIN_DIR/$(getVar $manifest Category)"
        else
            echo " for user $USER"
            if test "$IS_MAC" = 1
            then
                dest="$HOME/Library/Application Support/$PLUGIN_DIR/Plugins/$(getVar $manifest Category)"
            else
                dest="$HOME/.$PLUGIN_DIR/plugins/$(getVar $manifest Category)"
            fi
        fi
    fi

    # Copy files
    if ! test -d "$dest"
    then
        echo Creating directory $dest...
        mkdir -p "$dest"
    fi
    echo "Copying files to $dest..."
    cp -t "$dest" $(getMultiVar $manifest Files)

    # Clean up
    cd ../..
    rm -rf .tmp
    
    echo Done.       
    
fi