diff --git a/doc/manpages/qubes-create.rst b/doc/manpages/qubes-create.rst new file mode 100644 index 00000000..db1e7f8f --- /dev/null +++ b/doc/manpages/qubes-create.rst @@ -0,0 +1,30 @@ +.. program:: qubes-create + +:program:`qubes-create` -- Create new Qubes OS store. +===================================================== + +This command is the only supported way to create new qubes.xml. It is intended +to be readable though, so you can probably create it manually if you like. + +Synopsis +-------- + +:command:`qubes-create` [-h] [--xml *XMLFILE*] + +Options +------- + +.. option:: --help, -h + + show help message and exit + +.. option:: --xml=XMLFILE + + Where to put this new file in question. + +Authors +------- + +| Wojtek Porczyk + +.. vim: ts=3 sw=3 et tw=80 diff --git a/qubes/Makefile b/qubes/Makefile index 72999655..0c0f9563 100644 --- a/qubes/Makefile +++ b/qubes/Makefile @@ -53,6 +53,7 @@ endif cp \ tools/__init__.py* \ + tools/qubes_create.py* \ tools/qvm_ls.py* \ $(DESTDIR)$(PYTHON_QUBESPATH)/tools diff --git a/qubes/tools/qubes_create.py b/qubes/tools/qubes_create.py new file mode 100644 index 00000000..ea0906e8 --- /dev/null +++ b/qubes/tools/qubes_create.py @@ -0,0 +1,50 @@ +#!/usr/bin/python2 -O +# vim: fileencoding=utf-8 + +# +# The Qubes OS Project, https://www.qubes-os.org/ +# +# Copyright (C) 2015 Joanna Rutkowska +# Copyright (C) 2015 Wojtek Porczyk +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +'''qvm-create - Create new Qubes OS store''' + +# TODO allow to set properties and create domains + +import argparse +import qubes + +parser = argparse.ArgumentParser(description='Create new Qubes OS store.') +parser.add_argument('--xml', metavar='XMLFILE', + action='store', + help='Qubes OS store file') + +def main(args=None): + '''Main routine of :program:`qubes-create`. + + :param list args: Optional arguments to override those delivered from \ + command line. + ''' + + args = parser.parse_args(args) + app = qubes.Qubes.create_empty_store(args.xml) + return True + + +if __name__ == '__main__': + sys.exit(not main()) diff --git a/qvm-tools/qubes-create b/qvm-tools/qubes-create new file mode 100755 index 00000000..2d1db177 --- /dev/null +++ b/qvm-tools/qubes-create @@ -0,0 +1,7 @@ +#!/usr/bin/python2 +# vim: fileencoding=utf-8 + +import sys +import qubes.tools.qubes_create + +sys.exit(not qubes.tools.qubes_create.main()) diff --git a/rpm_spec/core-dom0.spec b/rpm_spec/core-dom0.spec index 464f7613..b668f2f5 100644 --- a/rpm_spec/core-dom0.spec +++ b/rpm_spec/core-dom0.spec @@ -216,6 +216,7 @@ fi %dir %{python_sitearch}/qubes/tools %{python_sitearch}/qubes/tools/__init__.py* +%{python_sitearch}/qubes/tools/qubes_create.py* %{python_sitearch}/qubes/tools/qvm_ls.py* %dir %{python_sitearch}/qubes/ext