Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: list_installed_packages.sh

Issue 6287010: crosutils:Remove dead scripts (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git@master
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « get_svn_repos.sh ('k') | make_relative_solution » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: list_installed_packages.sh
diff --git a/list_installed_packages.sh b/list_installed_packages.sh
deleted file mode 100755
index 96de458e97bf30fb46dca0cc029cbec9ef294052..0000000000000000000000000000000000000000
--- a/list_installed_packages.sh
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Print a list of installed packages
-#
-# This list is used by make_local_repo.sh to construct a local repository
-# with only those packages.
-#
-# Usage:
-# list_installed_packages.sh > package_list.txt
-
-# Die on error
-set -e
-
-USAGE='usage: '"$0"' [options]
-
-options:
- -v Print verbose output.
- -? Print this help.
-'
-
-# Handle command line options.
-# Note: Can't use shflags, since this must run inside the rootfs image.
-VERBOSE=0
-# Option processing using getopts
-while getopts "v?" OPTVAR
-do
- case $OPTVAR in
- "v")
- VERBOSE=1
- ;;
- "?")
- echo "$USAGE";
- exit 1
- ;;
- esac
-done
-shift `expr $OPTIND - 1`
-
-# Print information on a single package
-function print_deb {
- # Positional parameters from calling script. :? means "fail if unset".
- DEB_NAME=${1:?}
-
- # Get the installed version of the package.
- DEB_VER=`dpkg-query --show -f='${Version}' $DEB_NAME`
-
- # Get information on package from apt-cache. Use a temporary file since
- # we need to extract multiple fields.
- rm -f /tmp/print_deb
- apt-cache show $DEB_NAME > /tmp/print_deb
- # The apt cache may have more than one version of the package available.
- # For example, if the user has added another repository to
- # /etc/apt/sources.list to install/upgrade packages. Use bash arrays to
- # hold all the results until we can find information on the version we want.
- # TODO: Is there a way to do this using only awk, so we can use /bin/sh
- # instead of /bin/bash?
- ALL_VER=( `grep '^Version: ' < /tmp/print_deb | awk '{print $2}'` )
- ALL_PRIO=( `grep '^Priority: ' < /tmp/print_deb | awk '{print $2}'` )
- ALL_SECTION=( `grep '^Section: ' < /tmp/print_deb | awk '{print $2}'` )
- ALL_FILENAME=( `grep '^Filename: ' < /tmp/print_deb | awk '{print $2}'` )
- rm -f /tmp/print_deb
-
- # Find only the package version the user has installed.
- NUM_VER=${#ALL_VER[@]}
- FOUND_MATCH=0
- for ((I=0; I<$NUM_VER; I++));
- do
- if [ "${ALL_VER[$I]}" = "$DEB_VER" ]
- then
- FOUND_MATCH=1
- DEB_PRIO="${ALL_PRIO[$I]}"
- DEB_SECTION="${ALL_SECTION[$I]}"
- DEB_FILENAME="${ALL_FILENAME[$I]}"
- fi
- done
-
- # Determine if the package filename appears to be from a locally-built
- # repository (as created in build_image.sh). Use ! to ignore non-zero
- # exit code, since grep exits 1 if no match.
- ! DEB_FILENAME_IS_LOCAL=`echo $DEB_FILENAME | grep 'local_packages'`
-
- if [ $FOUND_MATCH -eq 0 ]
- then
- # Can't find information on package in apt cache
- if [ $VERBOSE -eq 1 ]
- then
- echo "Unable to locate package $DEB_NAME version $DEB_VER" 1>&2
- echo "in apt cache. It may have been installed directly, or the" 1>&2
- echo "cache has been updated since installation and no longer" 1>&2
- echo "contains information on that version. Omitting it in the" 1>&2
- echo "list, since we can't determine where it came from." 1>&2
- fi
- echo "# Skipped $DEB_NAME $DEB_VER: not in apt cache"
- elif [ "x$DEB_FILENAME" = "x" ]
- then
- # No filename, so package was installed via dpkg -i.
- if [ $VERBOSE -eq 1 ]
- then
- echo "Package $DEB_NAME appears to have been installed directly" 1>&2
- echo "(perhaps using 'dpkg -i'). Omitting it in the list, since we" 1>&2
- echo "can't determine where it came from." 1>&2
- fi
- echo "# Skipped $DEB_NAME $DEB_VER: installed directly"
- elif [ "x$DEB_FILENAME_IS_LOCAL" != "x" ]
- then
- # Package was installed from a local_packages directory.
- # For example, chromeos-wm
- if [ $VERBOSE -eq 1 ]
- then
- echo "Package $DEB_NAME appears to have been installed from a local" 1>&2
- echo "package repository. Omitting it in the list, since future" 1>&2
- echo "installs will also need to be local." 1>&2
- fi
- echo "# Skipped $DEB_NAME $DEB_VER $DEB_FILENAME: local install"
- else
- # Package from external repository.
- # Don't change the order of these fields; make_local_repo.sh depends
- # upon this order.
- echo "$DEB_NAME $DEB_VER $DEB_PRIO $DEB_SECTION $DEB_FILENAME"
- fi
-}
-
-# Header
-echo "# Copyright (c) 2009 The Chromium Authors. All rights reserved."
-echo "# Use of this source code is governed by a BSD-style license that can be"
-echo "# found in the LICENSE file."
-echo
-echo "# Package list created by list_installed_packages.sh"
-echo "# Creation time: `date`"
-echo "#"
-echo "# Contents of /etc/apt/sources.list:"
-cat /etc/apt/sources.list | sed 's/^/# /'
-echo "#"
-echo "# package_name version priority section repo_filename"
-
-# List all installed packages
-for DEB in `dpkg-query --show -f='${Package}\n'`
-do
- print_deb $DEB
-done
« no previous file with comments | « get_svn_repos.sh ('k') | make_relative_solution » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698