Merge https://github.com/postmarketOS/pmbootstrap into device/maguro
This commit is contained in:
commit
4ab785a978
|
@ -0,0 +1,11 @@
|
||||||
|
language: "python"
|
||||||
|
python: "3.6"
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- debian-sid
|
||||||
|
packages:
|
||||||
|
- shellcheck
|
||||||
|
install: "pip install flake8"
|
||||||
|
script: "test/static_code_analysis.sh"
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
To contribute, please [fork](https://guides.github.com/activities/forking/) this repository, commit your changes and then make a [pull-request](https://guides.github.com/activities/forking/#making-a-pull-request).
|
||||||
|
|
||||||
|
If you have changed Python code, please make sure, that the testsuite runs through. Install `pytest`, then execute `pytest` inside the `pmbootstrap` folder.
|
||||||
|
|
||||||
|
Additionally, the [static code analyis script](https://github.com/postmarketOS/pmbootstrap/blob/master/test/static_code_analysis.sh) must run through. Install `shellcheck` and `flake8`, then run:
|
||||||
|
```
|
||||||
|
test/static_code_analysis.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
*(As of now, Travis CI can only do the static code analysis. Running the testsuite automatically is planned.)*
|
||||||
|
|
||||||
|
**If you need any help, don't hesitate to open an [issue](https://github.com/postmarketOS/pmbootstrap/issues) and ask!**
|
|
@ -2,13 +2,17 @@
|
||||||
Sophisticated chroot/build/flash tool to develop and install [postmarketOS](https://ollieparanoid.github.io/post/postmarketOS).
|
Sophisticated chroot/build/flash tool to develop and install [postmarketOS](https://ollieparanoid.github.io/post/postmarketOS).
|
||||||
|
|
||||||
|
|
||||||
|
[Static code analysis](https://github.com/postmarketOS/pmbootstrap/blob/master/test/static_code_analysis.sh) status: [![travis badge](https://api.travis-ci.org/postmarketOS/pmbootstrap.png?branch=master)](https://travis-ci.org/postmarketOS/pmbootstrap)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
* GNU/Linux
|
* GNU/Linux
|
||||||
* Python 3
|
* Python 3
|
||||||
* openssh
|
* OpenSSL
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
**Check out the [porting guide](https://github.com/postmarketOS/pmbootstrap/wiki/Porting-to-a-new-device) for a practical start!**
|
||||||
|
|
||||||
Run `./pmbootstrap.py init` first, to select a target device and the work folder, which will contain all the chroots and other data.
|
Run `./pmbootstrap.py init` first, to select a target device and the work folder, which will contain all the chroots and other data.
|
||||||
After that, you can run any command. All dependencies (e.g. chroots) will be installed automatically, if they are not available yet.
|
After that, you can run any command. All dependencies (e.g. chroots) will be installed automatically, if they are not available yet.
|
||||||
|
|
||||||
|
@ -42,3 +46,4 @@ Format and partition the SD card `/dev/mmcblk0`, and put a full postmarketOS ins
|
||||||
|
|
||||||
## Testsuite
|
## Testsuite
|
||||||
Simply install `pytest` (via your package manager or via pip) and run it inside the pmbootstrap folder.
|
Simply install `pytest` (via your package manager or via pip) and run it inside the pmbootstrap folder.
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
import urllib.request
|
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
import shutil
|
import shutil
|
||||||
|
@ -158,7 +157,6 @@ def init(args):
|
||||||
"""
|
"""
|
||||||
Download, verify, extract $WORK/apk.static.
|
Download, verify, extract $WORK/apk.static.
|
||||||
"""
|
"""
|
||||||
base_url = args.mirror_alpine + "edge/main/" + args.arch_native
|
|
||||||
apkindex = download(args, "APKINDEX.tar.gz")
|
apkindex = download(args, "APKINDEX.tar.gz")
|
||||||
index_data = pmb.parse.apkindex.read(args, "apk-tools-static", apkindex)
|
index_data = pmb.parse.apkindex.read(args, "apk-tools-static", apkindex)
|
||||||
version = index_data["version"]
|
version = index_data["version"]
|
||||||
|
|
|
@ -16,6 +16,8 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def replace(path, old, new):
|
def replace(path, old, new):
|
||||||
text = ""
|
text = ""
|
||||||
with open(path, 'r') as handle:
|
with open(path, 'r') as handle:
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Copyright 2017 Oliver Smith
|
||||||
|
#
|
||||||
|
# This file is part of pmbootstrap.
|
||||||
|
#
|
||||||
|
# pmbootstrap is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# pmbootstrap is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
||||||
|
cd "$DIR"/..
|
||||||
|
|
||||||
|
# Shell: shellcheck
|
||||||
|
sh_files="test/static_code_analysis.sh"
|
||||||
|
echo "Test $sh_files with shellcheck..."
|
||||||
|
for file in ${sh_files}; do
|
||||||
|
shellcheck "${file}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Python: flake8
|
||||||
|
# E501: max line length
|
||||||
|
# F401: imported, but not used, does not make sense in __init__ files
|
||||||
|
# E402: module import not on top of file, not possible for testcases
|
||||||
|
echo "Test *.py files with flake8..."
|
||||||
|
echo "NOTE: Run 'autopep8 -ria $PWD' to fix code style issues"
|
||||||
|
py_files="$(find . -name '*.py')"
|
||||||
|
_ignores="E501,E402"
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
flake8 --exclude=__init__.py --ignore "$_ignores" $py_files
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
flake8 --filename=__init__.py --ignore "F401,$_ignores" $py_files
|
||||||
|
|
||||||
|
# Done
|
||||||
|
echo "Success!"
|
||||||
|
|
|
@ -16,7 +16,6 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import tarfile
|
import tarfile
|
||||||
|
|
|
@ -16,7 +16,6 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import pytest
|
import pytest
|
||||||
|
|
|
@ -16,7 +16,6 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import pytest
|
import pytest
|
||||||
|
|
|
@ -16,7 +16,6 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import pytest
|
import pytest
|
||||||
|
|
|
@ -16,7 +16,6 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import pytest
|
import pytest
|
||||||
|
|
|
@ -16,7 +16,6 @@ GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
along with pmbootstrap. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import pytest
|
import pytest
|
||||||
|
|
Loading…
Reference in New Issue