Skip to content

Commit 7c149d1

Browse files
committed
add setup
1 parent 78f0c13 commit 7c149d1

7 files changed

Lines changed: 100 additions & 29 deletions
File renamed without changes.
File renamed without changes.

kernel-manager.spec

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Group: System/Base
77
Url: https://github.com/Koi-foo/kernel-manager
88
Source0: %name-%version.tar
99

10-
BuildRequires: rpm-build-python3
10+
BuildRequires(pre): rpm-build-python3
1111

1212
Requires: python3-base
1313
Requires: python3-module-PyQt5
@@ -44,49 +44,31 @@ clean the file storage, update the distribution.
4444
%setup
4545

4646
%install
47-
mkdir -p \
48-
%buildroot%_desktopdir \
49-
%buildroot%_bindir \
50-
%buildroot%_pixmapsdir \
51-
%buildroot%_datadir/polkit-1/actions \
52-
%buildroot/opt/kernel-manager/mod \
53-
%buildroot/%_initdir
54-
55-
install -Dm644 kernel-*.desktop %buildroot%_desktopdir
56-
install -Dm755 kernel-manager %buildroot%_bindir
57-
install -Dm755 kernel-service %buildroot%_bindir
58-
install -Dm644 org.freedesktop.pkexec.kernel-manager.policy %buildroot%_datadir/polkit-1/actions
59-
60-
install -Dm755 kernel_manager.py %buildroot/opt/kernel-manager
61-
install -Dm755 kernel-indicator %buildroot/opt/kernel-manager
62-
install -Dm644 resources.py %buildroot/opt/kernel-manager
63-
install -Dm755 mod/shell.py %buildroot/opt/kernel-manager/mod
64-
install -Dm755 mod/load_config.py %buildroot/opt/kernel-manager/mod
65-
install -Dm755 mod/create_desktop.py %buildroot/opt/kernel-manager/mod
66-
install -Dm755 service/kernel-service %buildroot/%_initdir/kernel-service
67-
install -Dm 644 service/kernel-service.service %buildroot/%_unitdir/kernel-service.service
68-
install -Dm 644 sound/message.wav %buildroot/opt/kernel-manager/sound/message.wav
69-
cp -r {data,form,icons,locale} %buildroot/opt/kernel-manager
70-
chmod 666 %buildroot/opt/kernel-manager/data/config.json
47+
python3 setup.py \
48+
--prefix=/opt \
49+
--buildroot=%buildroot \
50+
--polkit=%_datadir/polkit-1/actions \
51+
--sysv=%_initdir \
52+
--sysd=%_unitdir \
53+
--bindir=%_bindir
7154

7255
%files
7356
%doc LICENSE README.md
7457
%_desktopdir/*.desktop
75-
/opt/kernel-manager
76-
/opt/kernel-manager/sound/message.wav
7758
%_datadir/polkit-1/actions/org.freedesktop.pkexec.kernel-manager.policy
7859
%_bindir/*
79-
/opt/kernel-manager/data/config.json
8060
%_initdir/kernel-service
8161
%_unitdir/kernel-service.service
62+
/opt/kernel-manager
8263

8364
%preun
8465
%preun_service kernel-service
8566

8667
%changelog
8768
* Sat Oct 29 2022 Evgeny Chuck <koi@altlinux.org> 1.9-alt1
88-
- New version 1.8
69+
- New version 1.9
8970
- Update service added
71+
- Add install script
9072

9173
* Sat Feb 19 2022 Evgeny Chuck <koi@altlinux.org> 1.8-alt2
9274
- New version 1.8
File renamed without changes.

setup.py

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
#
4+
import argparse
5+
import shutil
6+
import os
7+
8+
parser = argparse.ArgumentParser(allow_abbrev=True, description='installation kernel-manager')
9+
required = parser.add_argument_group('required arguments')
10+
parser.add_argument('-v', '-version', action='version', version='v0.1 Project page https://github.com/Koi-foo/kernel-manager')
11+
required.add_argument('--prefix', metavar='', type=str, nargs=1, required=True, help='example --prefix=/usr')
12+
required.add_argument('--sysv', metavar='', type=str, nargs=1, required=True, help='example --sysv=/initdir_dir')
13+
required.add_argument('--sysd', metavar='', type=str, nargs=1, required=True, help='example --systemd=/unit_dir')
14+
required.add_argument('--polkit', metavar='', type=str, nargs=1, required=True, help='example --polkit=/path')
15+
required.add_argument('--buildroot', metavar='', type=str, nargs=1, required=True, help='example --buildroot=/path')
16+
required.add_argument('--bindir', metavar='', type=str, nargs=1, required=True, help='example --bindir=/path')
17+
args = parser.parse_args()
18+
19+
modules = [
20+
'/mod/create_desktop.py',
21+
'/mod/load_config.py',
22+
'/mod/shell.py'
23+
]
24+
25+
directories = [
26+
'/data',
27+
'/sound',
28+
'/form',
29+
'/icons',
30+
'/locale'
31+
]
32+
33+
files = [
34+
'/kernel_manager.py',
35+
'/kernel-indicator',
36+
'/resources.py'
37+
]
38+
39+
desktop = [
40+
'/kernel-indicator.desktop',
41+
'/kernel-manager.desktop'
42+
]
43+
44+
executant = [
45+
'/kernel-service',
46+
'/kernel-manager'
47+
]
48+
49+
build_dir = os.getcwd()
50+
prefix = args.prefix[0]
51+
buildroot = args.buildroot[0]
52+
53+
bin_dir = f'{buildroot}{args.bindir[0]}'
54+
polkit_dir = f'{buildroot}{args.polkit[0]}'
55+
sysv_dir = f'{buildroot}{args.sysv[0]}'
56+
systemd_dir = f'{buildroot}{args.sysd[0]}'
57+
share_dir = f'{buildroot}/usr/share/applications'
58+
install_dir = f'{buildroot}{prefix}/kernel-manager'
59+
60+
# раскидать и не париться
61+
os.makedirs(f'{install_dir}/mod')
62+
for item in modules:
63+
shutil.copy(f'{build_dir}{item}', f'{install_dir}{item}')
64+
65+
os.makedirs(share_dir)
66+
for item in desktop:
67+
shutil.copy(f'{build_dir}/desktop{item}', f'{share_dir}{item}')
68+
69+
for item in directories:
70+
shutil.copytree(f'{build_dir}{item}', f'{install_dir}{item}')
71+
72+
for item in files:
73+
shutil.copy(f'{build_dir}{item}', f'{install_dir}{item}')
74+
75+
os.makedirs(bin_dir)
76+
for item in executant:
77+
shutil.copy(f'{build_dir}/bin{item}', f'{bin_dir}{item}')
78+
79+
os.makedirs(polkit_dir)
80+
polkit_file = '/org.freedesktop.pkexec.kernel-manager.policy'
81+
shutil.copy(f'{build_dir}/polkit{polkit_file}', f'{polkit_dir}{polkit_file}')
82+
83+
os.makedirs(systemd_dir)
84+
shutil.copy(f'{build_dir}/service/kernel-service.service', f'{systemd_dir}/kernel-service.service')
85+
86+
os.makedirs(sysv_dir)
87+
shutil.copy(f'{build_dir}/service/kernel-service', f'{sysv_dir}/kernel-service')
88+
89+
os.chmod(f'{install_dir}/data/config.json', 0o666)

0 commit comments

Comments
 (0)