2 # Copyright (C) 2018 - Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
24 from datetime
import datetime
27 def compress(filename
):
30 '-f', filename
+ ".tar.gz",
34 subprocess
.run(command
, check
=True)
35 shutil
.rmtree(filename
)
63 'libtap-harness-archive-perl',
94 parser
= argparse
.ArgumentParser(description
='Generate lava lttng rootfs')
95 parser
.add_argument("--arch", default
='amd64')
96 parser
.add_argument("--distribution", default
='bookworm')
97 parser
.add_argument("--mirror", default
='https://deb.debian.org/debian')
99 "--component", default
='main')
100 args
= parser
.parse_args()
102 name
= "rootfs_{}_{}_{}".format(args
.arch
, args
.distribution
,
103 datetime
.now().strftime("%Y-%m-%d"))
105 hostname
= "linaro-server"
106 user
= "linaro/linaro"
107 root_password
= "root"
111 "--arch={}".format(args
.arch
),
112 "--components={}".format(args
.component
),
114 args
.distribution
, # SUITE
115 name
, # TARGET (directory is created)
116 args
.mirror
, # MIRROR
118 completed_command
= subprocess
.run(command
, check
=True)
123 'apt-get', 'install', '-y', ] + packages
124 completed_command
= subprocess
.run(command
, check
=True)
127 with
open(os
.path
.join(name
, 'etc', 'hostname'), 'w', encoding
='utf-8') as f
:
128 f
.write(hostname
+ "\n")
133 'adduser', '--gecos', '', '--disabled-password', 'linaro',
135 completed_process
= subprocess
.run(command
, check
=True)
138 'chroot', name
, 'chpasswd',
140 process
= subprocess
.Popen(command
, stdin
=subprocess
.PIPE
, text
=True)
141 process
.communicate(input='linaro:linaro')
144 process
= subprocess
.Popen(command
, stdin
=subprocess
.PIPE
, text
=True)
145 process
.communicate(input="root:root")
150 if __name__
== "__main__":
152 print("This script should be run as root: this is required by deboostrap", file=sys
.stderr
)
This page took 0.05139 seconds and 4 git commands to generate.