mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-05-27 16:53:15 +00:00
Install legacy scripts when built without python.
Re-introduce the old lxc-ls script and manpage under a new legacy sub-directory. Those will be installed in place of their python equivalent when LXC is built without --enable-python. Any other script ported to python should be added to those lists. Signed-off-by: Stéphane Graber <stgraber@ubuntu.com> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
4e7186c535
commit
6a85cf9124
1
.gitignore
vendored
1
.gitignore
vendored
@ -64,6 +64,7 @@ src/lxc/lxc-unfreeze
|
||||
src/lxc/lxc-unshare
|
||||
src/lxc/lxc-version
|
||||
src/lxc/lxc-wait
|
||||
src/lxc/legacy/lxc-ls
|
||||
|
||||
src/python-lxc/lxc/__pycache__/
|
||||
|
||||
|
@ -229,6 +229,7 @@ AC_CONFIG_FILES([
|
||||
doc/lxc.sgml
|
||||
doc/common_options.sgml
|
||||
doc/see_also.sgml
|
||||
doc/legacy/lxc-ls.sgml
|
||||
|
||||
doc/rootfs/Makefile
|
||||
|
||||
@ -266,6 +267,7 @@ AC_CONFIG_FILES([
|
||||
src/lxc/lxc-shutdown
|
||||
src/lxc/lxc-start-ephemeral
|
||||
src/lxc/lxc-destroy
|
||||
src/lxc/legacy/lxc-ls
|
||||
|
||||
src/python-lxc/Makefile
|
||||
|
||||
|
@ -19,7 +19,6 @@ man_MANS = \
|
||||
lxc-unfreeze.1 \
|
||||
lxc-monitor.1 \
|
||||
lxc-wait.1 \
|
||||
lxc-ls.1 \
|
||||
lxc-ps.1 \
|
||||
lxc-cgroup.1 \
|
||||
lxc-kill.1 \
|
||||
@ -29,15 +28,23 @@ man_MANS = \
|
||||
\
|
||||
lxc.7
|
||||
|
||||
if ENABLE_PYTHON
|
||||
man_MANS += lxc-ls.1
|
||||
else
|
||||
man_MANS += legacy/lxc-ls.1
|
||||
endif
|
||||
|
||||
%.1 : %.sgml
|
||||
$(db2xman) $<
|
||||
test "$(shell basename $@)" != "$@" && mv $(shell basename $@) $@ || true
|
||||
|
||||
%.5 : %.sgml
|
||||
$(db2xman) $<
|
||||
test "$(shell basename $@)" != "$@" && mv $(shell basename $@) $@ || true
|
||||
|
||||
%.7 : %.sgml
|
||||
$(db2xman) $<
|
||||
test "$(shell basename $@)" != "$@" && mv $(shell basename $@) $@ || true
|
||||
|
||||
lxc-%.sgml : common_options.sgml see_also.sgml
|
||||
|
||||
|
156
doc/legacy/lxc-ls.sgml.in
Normal file
156
doc/legacy/lxc-ls.sgml.in
Normal file
@ -0,0 +1,156 @@
|
||||
|
||||
<!--
|
||||
|
||||
lxc: linux Container library
|
||||
|
||||
(C) Copyright IBM Corp. 2007, 2008
|
||||
|
||||
Authors:
|
||||
Daniel Lezcano <dlezcano at fr.ibm.com>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
-->
|
||||
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
|
||||
<!ENTITY seealso SYSTEM "@builddir@/../see_also.sgml">
|
||||
]>
|
||||
|
||||
<refentry>
|
||||
|
||||
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>lxc-ls</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>lxc-ls</refname>
|
||||
|
||||
<refpurpose>
|
||||
list the containers existing on the system
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>lxc-ls</command>
|
||||
<arg choice="opt">--active</arg>
|
||||
<arg choice="opt">ls option</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<para>
|
||||
<command>lxc-ls</command> list the containers existing on the
|
||||
system.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Options</title>
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option><optional>--active</optional></option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
List active containers.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option><optional>ls options</optional></option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The option passed to <command>lxc-ls</command> are the
|
||||
same as the <command>ls</command> command.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Examples</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>lxc-ls -l</term>
|
||||
<listitem>
|
||||
<para>
|
||||
list all the container and their permissions.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>lxc-ls --active -1</term>
|
||||
<listitem>
|
||||
<para>
|
||||
list active containers and display the list in one column.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
|
||||
<simpara>
|
||||
<citerefentry>
|
||||
<refentrytitle>ls</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
</citerefentry>,
|
||||
</simpara>
|
||||
|
||||
</refsect1>
|
||||
|
||||
&seealso;
|
||||
|
||||
<refsect1>
|
||||
<title>Author</title>
|
||||
<para>Daniel Lezcano <email>daniel.lezcano@free.fr</email></para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:2
|
||||
sgml-indent-data:t
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:nil
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
-->
|
@ -100,6 +100,8 @@ if ENABLE_PYTHON
|
||||
bin_SCRIPTS += lxc-device
|
||||
bin_SCRIPTS += lxc-ls
|
||||
bin_SCRIPTS += lxc-start-ephemeral
|
||||
else
|
||||
bin_SCRIPTS += legacy/lxc-ls
|
||||
endif
|
||||
|
||||
bin_PROGRAMS = \
|
||||
|
94
src/lxc/legacy/lxc-ls.in
Normal file
94
src/lxc/legacy/lxc-ls.in
Normal file
@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# lxc: linux Container library
|
||||
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
lxc_path=@LXCPATH@
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "usage: $(basename $0) [--active] [--] [LS_OPTIONS...]" >&2
|
||||
}
|
||||
|
||||
help() {
|
||||
usage
|
||||
echo >&2
|
||||
echo "List containers existing on the system." >&2
|
||||
echo >&2
|
||||
echo " --active list active containers" >&2
|
||||
echo " LS_OPTIONS ls command options (see \`ls --help')" >&2
|
||||
}
|
||||
|
||||
get_parent_cgroup()
|
||||
{
|
||||
local hierarchies hierarchy fields subsystems init_cgroup mountpoint
|
||||
|
||||
parent_cgroup=""
|
||||
|
||||
# Obtain a list of hierarchies that contain one or more subsystems
|
||||
hierarchies=$(tail -n +2 /proc/cgroups | cut -f 2)
|
||||
|
||||
# Iterate through the list until a suitable hierarchy is found
|
||||
for hierarchy in $hierarchies; do
|
||||
# Obtain information about the init process in the hierarchy
|
||||
fields=$(grep -E "^$hierarchy:" /proc/1/cgroup | head -n 1)
|
||||
if [ -z "$fields" ]; then continue; fi
|
||||
fields=${fields#*:}
|
||||
|
||||
# Get a comma-separated list of the hierarchy's subsystems
|
||||
subsystems=${fields%:*}
|
||||
|
||||
# Get the cgroup of the init process in the hierarchy
|
||||
init_cgroup=${fields#*:}
|
||||
|
||||
# Get the filesystem mountpoint of the hierarchy
|
||||
mountpoint=$(grep -E "^[^ ]+ [^ ]+ cgroup ([^ ]+,)?$subsystems(,[^ ]+)? " /proc/self/mounts | cut -d ' ' -f 2)
|
||||
if [ -z "$mountpoint" ]; then continue; fi
|
||||
|
||||
# Return the absolute path to the containers' parent cgroup
|
||||
# (do not append '/lxc' if the hierarchy contains the 'ns' subsystem)
|
||||
if [[ ",$subsystems," == *,ns,* ]]; then
|
||||
parent_cgroup="${mountpoint}${init_cgroup%/}"
|
||||
else
|
||||
parent_cgroup="${mountpoint}${init_cgroup%/}/lxc"
|
||||
fi
|
||||
break
|
||||
done
|
||||
}
|
||||
|
||||
directory=$(readlink -f "$lxc_path")
|
||||
|
||||
for i in "$@"; do
|
||||
case $i in
|
||||
--help)
|
||||
help; exit;;
|
||||
--active)
|
||||
get_parent_cgroup; directory="$parent_cgroup"; shift;;
|
||||
--)
|
||||
shift; break;;
|
||||
*)
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
|
||||
containers=""
|
||||
if [ ! -z "$directory" ]; then
|
||||
containers=$(find $directory -mindepth 1 -maxdepth 1 -type d -printf "%f\n" 2>/dev/null)
|
||||
fi
|
||||
|
||||
cd "$directory"
|
||||
ls -d $@ -- $containers
|
Loading…
Reference in New Issue
Block a user