diff --git a/flit/install.py b/flit/install.py index cdcd03f1..d7f006dc 100644 --- a/flit/install.py +++ b/flit/install.py @@ -343,6 +343,8 @@ def install_directly(self): scripts = self.ini_info.entrypoints.get('console_scripts', {}) self.install_scripts(scripts, dirs['scripts']) + gui_scripts = self.ini_info.entrypoints.get('gui_scripts', {}) + self.install_scripts(gui_scripts, dirs['scripts']) self.install_data_dir(dirs['data']) diff --git a/tests/samples/entrypoints_valid/pyproject.toml b/tests/samples/entrypoints_valid/pyproject.toml index c2f64fb2..4aad5c6f 100644 --- a/tests/samples/entrypoints_valid/pyproject.toml +++ b/tests/samples/entrypoints_valid/pyproject.toml @@ -14,3 +14,6 @@ pkg_script = "package1:main" [project.entry-points.myplugins] package1 = "package1:main" + +[project.gui-scripts] +pkg_gui = "package1:main" diff --git a/tests/test_install.py b/tests/test_install.py index 0ade0456..ade4da25 100644 --- a/tests/test_install.py +++ b/tests/test_install.py @@ -223,6 +223,15 @@ def test_dist_name(self): assert_isdir(self.tmpdir / 'site-packages' / 'package1') assert_isdir(self.tmpdir / 'site-packages' / 'package_dist1-0.1.dist-info') + def test_install_gui_scripts_pth(self): + Installer.from_ini_path( + samples_dir / 'entrypoints_valid' / 'pyproject.toml', pth=True + ).install_directly() + assert_isfile(self.tmpdir / 'scripts' / 'pkg_script') + assert_isfile(self.tmpdir / 'scripts' / 'pkg_gui') + with (self.tmpdir / 'scripts' / 'pkg_gui').open() as f: + assert f.readline().strip() == "#!" + sys.executable + def test_entry_points(self): Installer.from_ini_path(samples_dir / 'entrypoints_valid' / 'pyproject.toml').install_directly() assert_isfile(self.tmpdir / 'site-packages' / 'package1-0.1.dist-info' / 'entry_points.txt')