diff mbox

[U-Boot,RFC,v2] patman: add distutils based installer

Message ID 1437212997-14469-1-git-send-email-judge.packham@gmail.com
State Superseded
Delegated to: Simon Glass
Headers show

Commit Message

Chris Packham July 18, 2015, 9:49 a.m. UTC
To make it easier to use patman on other projects add a distutils style
installer. Now patman can be installed with

  cd u-boot/tools/patman && python setup.py install

There are also the usual distutils options for creating source/binary
distributions of patman.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
This gives us something that can be distributed separately as well as
in-tree. The import trick allows the python module "patman" to be
distributed and enables in-tree use without moving things around. An
alternative would be to move the files into a sub directory
(unfortunately a directory called "patman" would clash with the existing
symlink). I've left this as RFC so that the community can decide if we
want to live with this ugliness or come up with something else.

Thanks,
Chris

Changes in v2:
- Install as "patman" package
- Allow running in-tree or out-of-tree

 tools/patman/__init__.py |  3 +++
 tools/patman/patman.py   | 20 ++++++++++++--------
 tools/patman/setup.py    | 13 +++++++++++++
 3 files changed, 28 insertions(+), 8 deletions(-)
 create mode 100644 tools/patman/__init__.py
 create mode 100644 tools/patman/setup.py

Comments

Simon Glass July 22, 2015, 2:03 a.m. UTC | #1
Hi Chris,

On 18 July 2015 at 03:49, Chris Packham <judge.packham@gmail.com> wrote:
> To make it easier to use patman on other projects add a distutils style
> installer. Now patman can be installed with
>
>   cd u-boot/tools/patman && python setup.py install
>
> There are also the usual distutils options for creating source/binary
> distributions of patman.

This looks good but can you please add a note to the patman README
about how to install it?

Tested-by: Simon Glass <sjg@chromium.org>

>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> This gives us something that can be distributed separately as well as
> in-tree. The import trick allows the python module "patman" to be
> distributed and enables in-tree use without moving things around. An
> alternative would be to move the files into a sub directory
> (unfortunately a directory called "patman" would clash with the existing
> symlink). I've left this as RFC so that the community can decide if we
> want to live with this ugliness or come up with something else.
>
> Thanks,
> Chris
>
> Changes in v2:
> - Install as "patman" package
> - Allow running in-tree or out-of-tree
>
>  tools/patman/__init__.py |  3 +++
>  tools/patman/patman.py   | 20 ++++++++++++--------
>  tools/patman/setup.py    | 13 +++++++++++++
>  3 files changed, 28 insertions(+), 8 deletions(-)
>  create mode 100644 tools/patman/__init__.py
>  create mode 100644 tools/patman/setup.py
>
> diff --git a/tools/patman/__init__.py b/tools/patman/__init__.py
> new file mode 100644
> index 0000000..7cbe5fa
> --- /dev/null
> +++ b/tools/patman/__init__.py
> @@ -0,0 +1,3 @@
> +__all__ = ['checkpatch', 'command', 'commit', 'cros_subprocess',
> +           'get_maintainer', 'gitutil', 'patchstream', 'project',
> +           'series', 'settings', 'terminal', 'test']
> diff --git a/tools/patman/patman.py b/tools/patman/patman.py
> index 6c6473e..e76fc42 100755
> --- a/tools/patman/patman.py
> +++ b/tools/patman/patman.py
> @@ -14,14 +14,18 @@ import sys
>  import unittest
>
>  # Our modules
> -import checkpatch
> -import command
> -import gitutil
> -import patchstream
> -import project
> -import settings
> -import terminal
> -import test
> +try:
> +    from patman import checkpatch, command, gitutil, patchstream, \
> +        project, settings, terminal, test
> +except ImportError:
> +    import checkpatch
> +    import command
> +    import gitutil
> +    import patchstream
> +    import project
> +    import settings
> +    import terminal
> +    import test
>
>
>  parser = OptionParser()
> diff --git a/tools/patman/setup.py b/tools/patman/setup.py
> new file mode 100644
> index 0000000..e61804f
> --- /dev/null
> +++ b/tools/patman/setup.py
> @@ -0,0 +1,13 @@
> +#
> +# SPDX-License-Identifier:      GPL-2.0+
> +#
> +from distutils.core import setup
> +setup(name='patman',
> +      version='1.0',
> +      license='GPL-2.0+',
> +      scripts=['patman'],
> +      packages=['patman'],
> +      package_dir={'patman': ''},
> +      package_data={'patman': ['README']},
> +      classifiers=['Environment :: Console',
> +                   'Topic :: Software Development'])
> --
> 2.5.0.rc0
>

Regards,
Simon
diff mbox

Patch

diff --git a/tools/patman/__init__.py b/tools/patman/__init__.py
new file mode 100644
index 0000000..7cbe5fa
--- /dev/null
+++ b/tools/patman/__init__.py
@@ -0,0 +1,3 @@ 
+__all__ = ['checkpatch', 'command', 'commit', 'cros_subprocess',
+           'get_maintainer', 'gitutil', 'patchstream', 'project',
+           'series', 'settings', 'terminal', 'test']
diff --git a/tools/patman/patman.py b/tools/patman/patman.py
index 6c6473e..e76fc42 100755
--- a/tools/patman/patman.py
+++ b/tools/patman/patman.py
@@ -14,14 +14,18 @@  import sys
 import unittest
 
 # Our modules
-import checkpatch
-import command
-import gitutil
-import patchstream
-import project
-import settings
-import terminal
-import test
+try:
+    from patman import checkpatch, command, gitutil, patchstream, \
+        project, settings, terminal, test
+except ImportError:
+    import checkpatch
+    import command
+    import gitutil
+    import patchstream
+    import project
+    import settings
+    import terminal
+    import test
 
 
 parser = OptionParser()
diff --git a/tools/patman/setup.py b/tools/patman/setup.py
new file mode 100644
index 0000000..e61804f
--- /dev/null
+++ b/tools/patman/setup.py
@@ -0,0 +1,13 @@ 
+#
+# SPDX-License-Identifier:      GPL-2.0+
+#
+from distutils.core import setup
+setup(name='patman',
+      version='1.0',
+      license='GPL-2.0+',
+      scripts=['patman'],
+      packages=['patman'],
+      package_dir={'patman': ''},
+      package_data={'patman': ['README']},
+      classifiers=['Environment :: Console',
+                   'Topic :: Software Development'])