f68678d84cc5ab7ff070348456d97d2445a65896
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',
92 parser
= argparse
.ArgumentParser(description
='Generate lava lttng rootfs')
93 parser
.add_argument("--arch", default
='amd64')
94 parser
.add_argument("--distribution", default
='bookworm')
95 parser
.add_argument("--mirror", default
='https://deb.debian.org/debian')
97 "--component", default
='main')
98 args
= parser
.parse_args()
100 name
= "rootfs_{}_{}_{}".format(args
.arch
, args
.distribution
,
101 datetime
.now().strftime("%Y-%m-%d"))
103 hostname
= "linaro-server"
104 user
= "linaro/linaro"
105 root_password
= "root"
109 "--arch={}".format(args
.arch
),
110 "--components={}".format(args
.component
),
112 args
.distribution
, # SUITE
113 name
, # TARGET (directory is created)
114 args
.mirror
, # MIRROR
116 completed_command
= subprocess
.run(command
, check
=True)
121 'apt-get', 'install', '-y', ] + packages
122 completed_command
= subprocess
.run(command
, check
=True)
125 with
open(os
.path
.join(name
, 'etc', 'hostname'), 'w', encoding
='utf-8') as f
:
126 f
.write(hostname
+ "\n")
131 'adduser', '--gecos', '', '--disabled-password', 'linaro',
133 completed_process
= subprocess
.run(command
, check
=True)
136 'chroot', name
, 'chpasswd',
138 process
= subprocess
.Popen(command
, stdin
=subprocess
.PIPE
, text
=True)
139 process
.communicate(input='linaro:linaro')
142 process
= subprocess
.Popen(command
, stdin
=subprocess
.PIPE
, text
=True)
143 process
.communicate(input="root:root")
148 if __name__
== "__main__":
150 print("This script should be run as root: this is required by deboostrap", file=sys
.stderr
)
This page took 0.031524 seconds and 4 git commands to generate.