Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
1db74f791a | |||
372fda3afc | |||
749ffe6d73 | |||
76b399f3b5 | |||
83f7ebb223 |
@ -1,25 +1,23 @@
|
||||
stages:
|
||||
- Generate Stub and Versions
|
||||
- Generate Version Files
|
||||
- Compile Versions
|
||||
- Compile Sources
|
||||
- Link
|
||||
- Generate ISO
|
||||
- Generate Sources List
|
||||
- Generate Documentation
|
||||
- Deploy
|
||||
|
||||
compile_stub:
|
||||
stage: Generate Stub and Versions
|
||||
script:
|
||||
- chmod +x ./compile_stub.sh
|
||||
- ./compile_stub.sh
|
||||
artifacts:
|
||||
cache:
|
||||
- key: ${CI_COMMIT_REF_SLUG}
|
||||
paths:
|
||||
- lib/stub.o
|
||||
- lib/*.o
|
||||
- bin/kernel.bin
|
||||
- doc
|
||||
|
||||
vergen:
|
||||
stage: Generate Stub and Versions
|
||||
before_script:
|
||||
- chmod +x *.sh
|
||||
|
||||
versions:
|
||||
stage: Compile Versions
|
||||
script:
|
||||
- chmod +x ./compile_vergen.sh
|
||||
- ./compile_vergen.sh
|
||||
artifacts:
|
||||
paths:
|
||||
@ -29,71 +27,47 @@ vergen:
|
||||
compile_sources:
|
||||
stage: Compile Sources
|
||||
script:
|
||||
- chmod +x ./compile_sources.sh
|
||||
- rm -f lib/*.so
|
||||
- ./compile_sources.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- lib/*.o
|
||||
dependencies:
|
||||
- compile_stub
|
||||
- vergen
|
||||
needs:
|
||||
- vergen
|
||||
- compile_stub
|
||||
- versions
|
||||
|
||||
link:
|
||||
stage: Link
|
||||
script:
|
||||
- chmod +x ./compile_link.sh
|
||||
- ./compile_stub.sh
|
||||
- ./compile_link.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- bin/kernel.bin
|
||||
dependencies:
|
||||
- compile_sources
|
||||
needs:
|
||||
- versions
|
||||
- compile_sources
|
||||
|
||||
isogen:
|
||||
stage: Generate ISO
|
||||
stage: Deploy
|
||||
script:
|
||||
- chmod +x ./compile_isogen.sh
|
||||
- ./compile_isogen.sh
|
||||
- chmod +x ./compile_sumgen.sh
|
||||
- ./compile_sumgen.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- ./Asuro.iso
|
||||
- ./release/checksum.svg
|
||||
dependencies:
|
||||
- link
|
||||
needs:
|
||||
- link
|
||||
|
||||
sourcelist:
|
||||
stage: Generate Sources List
|
||||
script:
|
||||
- chmod +x ./compile_sourcelist.sh
|
||||
- ./compile_sourcelist.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- ./sources.list
|
||||
dependencies:
|
||||
- vergen
|
||||
needs:
|
||||
- vergen
|
||||
|
||||
docgen:
|
||||
stage: Generate Documentation
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
script:
|
||||
- chmod +x ./compile_docs.sh
|
||||
- ./compile_sourcelist.sh
|
||||
- ./compile_docs.sh
|
||||
# Remove comments when we want to use gitlab pages.
|
||||
#- cp doc public
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
paths:
|
||||
- ./doc/*
|
||||
dependencies:
|
||||
- vergen
|
||||
- sourcelist
|
||||
- doc
|
||||
#- public/*
|
||||
#- ./sources.list
|
||||
needs:
|
||||
- vergen
|
||||
- sourcelist
|
||||
- versions
|
||||
|
22
Dockerfile
22
Dockerfile
@ -2,18 +2,22 @@ FROM ubuntu:latest
|
||||
|
||||
VOLUME ["/code"]
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN dpkg --add-architecture i386
|
||||
RUN apt-get update
|
||||
RUN apt-get install nasm curl make:i386 binutils:i386 xorriso grub-pc-bin dos2unix -y
|
||||
RUN apt-get clean
|
||||
RUN curl https://sourceforge.net/projects/freepascal/files/Linux/2.6.4/fpc-2.6.4.i386-linux.tar/download --output fpc.tar -L && \
|
||||
tar -xf fpc.tar
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl dos2unix wget git make nasm binutils:i386 xorriso grub-pc-bin && \
|
||||
apt-get clean my room
|
||||
|
||||
WORKDIR ./fpc-2.6.4.i386-linux
|
||||
RUN ./install.sh
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
ARG FPC_VERSION=2.6.4
|
||||
RUN curl -sL https://sourceforge.net/projects/freepascal/files/Linux/$FPC_VERSION/fpc-$FPC_VERSION.i386-linux.tar/download | tar -xf - && \
|
||||
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
||||
rm -rf fpc-$FPC_VERSION.i386-linux
|
||||
|
||||
COPY compile.sh /compile.sh
|
||||
RUN mkdir /code
|
||||
ADD https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver /usr/bin/semver
|
||||
RUN mkdir /code && chmod +x /usr/bin/semver
|
||||
WORKDIR /code
|
||||
RUN find . -type f -print0 | xargs -0 dos2unix
|
||||
ENTRYPOINT ["/bin/bash", "/compile.sh"]
|
||||
ENTRYPOINT ["/bin/bash", "-c"]
|
||||
CMD ["/compile.sh"]
|
53
compile.sh
53
compile.sh
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
ERRCOUNT=0
|
||||
echo " "
|
||||
echo "======================="
|
||||
@ -7,49 +7,32 @@ echo "Asuro Compilation"
|
||||
echo " "
|
||||
|
||||
#Compile Stub.asm
|
||||
./compile_stub.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed to compile stub!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
rm lib/*
|
||||
|
||||
runOrFail() {
|
||||
local binary=$1
|
||||
local errorText=$2
|
||||
if $binary; then
|
||||
echo "Success."
|
||||
fi
|
||||
else
|
||||
echo "$errorText"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
fi
|
||||
}
|
||||
|
||||
runOrFail $(pwd)/compile_stub.sh "Failed to compile stub!"
|
||||
|
||||
#Generate .pas with versioning headers.
|
||||
./compile_vergen.sh
|
||||
runOrFail $(pwd)/compile_vergen.sh "Versions failed to compile"
|
||||
|
||||
#Compile all .pas sources
|
||||
./compile_sources.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo " "
|
||||
echo "Failed to compile FPC Sources!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
echo " "
|
||||
echo "Success."
|
||||
fi
|
||||
runOrFail $(pwd)/compile_sources.sh "Failed to compile FPC Sources!"
|
||||
|
||||
#Link into a binary.
|
||||
./compile_link.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed linking!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
echo "Success."
|
||||
fi
|
||||
runOrFail $(pwd)/compile_link.sh "Failed linking!"
|
||||
|
||||
#Generate an ISO with GRUB as the Bootloader.
|
||||
./compile_isogen.sh
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed to create ISO!"
|
||||
ERRCOUNT=$((ERRCOUNT+1))
|
||||
else
|
||||
echo "Success."
|
||||
fi
|
||||
runOrFail ./compile_isogen.sh "Failed to create ISO!"
|
||||
|
||||
#Call generate final artifacts based on failure or success of the above.
|
||||
if [ "$ERRCOUNT" -ne "0" ]
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
echo > checksums.md5
|
||||
for directory in $(find src/ -maxdepth 10 -type d); do
|
||||
for filename in $directory/*.pas; do
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
@ -15,4 +15,3 @@ rm -rf ./doc/*
|
||||
echo "Generating Docs..."
|
||||
./pasdoc/bin/pasdoc -N "Asuro" -T "Asuro OS Documentation" -O "html" -E ./doc/ -S sources.list --use-tipue-search
|
||||
echo "Docgen finished."
|
||||
exit 0
|
@ -1,8 +1,8 @@
|
||||
#/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
if [ "$1" == "failed" ]
|
||||
if [[ "$1" == "failed" ]]
|
||||
then
|
||||
echo "Errors Occurred, please review."
|
||||
wget -q https://img.shields.io/badge/build-failed-red.svg -O release/build.svg 2>/dev/null
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
@ -1,8 +1,7 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
echo "Compiling Stub..."
|
||||
echo " "
|
||||
rm lib/*
|
||||
nasm -f elf src/stub/stub.asm -o lib/stub.o
|
@ -1,4 +1,4 @@
|
||||
#/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
|
@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
@ -8,56 +9,67 @@ chmod +x ./compile_checksum.sh
|
||||
./compile_checksum.sh
|
||||
outfile="src/include/asuro.pas"
|
||||
file="version"
|
||||
while IFS=: read -r line;do
|
||||
major=$(echo $line | awk '{print $1}')
|
||||
minor=$(echo $line | awk '{print $2}')
|
||||
sub=$(echo $line | awk '{print $3}')
|
||||
release=$(echo $line | awk '{print $4}')
|
||||
done <"$file"
|
||||
{
|
||||
# this script requires semver tool
|
||||
wget -q https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver -O bin/semver && chmod +x bin/semver
|
||||
export PATH="$(pwd)/bin:$PATH"
|
||||
}
|
||||
tagref=$(git describe --tags)
|
||||
revision=$(git rev-parse --short=8 HEAD)
|
||||
major=$(semver get major $tagref)
|
||||
minor=$(semver get minor $tagref)
|
||||
sub=$(semver get patch $tagref)
|
||||
version=$(semver get release $tagref)
|
||||
release=$(semver get prerel $tagref)
|
||||
build=$(semver get build $tagref)
|
||||
linecount=$(./loc.sh | awk '{print $1}')
|
||||
sourcecount=$(find src -type f | wc -l)
|
||||
drivercount=$(find src/driver -type f | wc -l)
|
||||
revision=$(git rev-list --all --count)
|
||||
fpcversion=$(fpc -h | grep -m 1 version | awk '{print $5}')
|
||||
makeversion=$(make -v | grep GNU | awk '{print $3}' | grep -v GNU)
|
||||
nasmversion=$(nasm -v | awk '{print $3'})
|
||||
compiledate=$(date +"%d/%m/%y")
|
||||
compiletime=$(date +"%T")
|
||||
checksum=$(md5sum checksums.md5 | awk '{print $1}')
|
||||
echo "unit asuro;" > $outfile
|
||||
echo " " >> $outfile
|
||||
echo "interface" >> $outfile
|
||||
echo " " >> $outfile
|
||||
echo "const" >> $outfile
|
||||
echo " VERSION = '$major.$minor.$sub-$revision$release';" >> $outfile
|
||||
echo " VERSION_MAJOR = '$major';" >> $outfile
|
||||
echo " VERSION_MINOR = '$minor';" >> $outfile
|
||||
echo " VERSION_SUB = '$sub';" >> $outfile
|
||||
echo " REVISION = '$revision';" >> $outfile
|
||||
echo " RELEASE = '$release';" >> $outfile
|
||||
echo " LINE_COUNT = $linecount;" >> $outfile
|
||||
echo " FILE_COUNT = $sourcecount;" >> $outfile
|
||||
echo " DRIVER_COUNT = $drivercount;" >> $outfile
|
||||
echo " FPC_VERSION = '$fpcversion';" >> $outfile
|
||||
echo " NASM_VERSION = '$nasmversion';" >> $outfile
|
||||
echo " MAKE_VERSION = '$makeversion';" >> $outfile
|
||||
echo " COMPILE_DATE = '$compiledate';" >> $outfile
|
||||
echo " COMPILE_TIME = '$compiletime';" >> $outfile
|
||||
echo " CHECKSUM = '$checksum';" >> $outfile
|
||||
echo " " >> $outfile
|
||||
echo "implementation" >> $outfile
|
||||
echo " " >> $outfile
|
||||
echo "end." >> $outfile
|
||||
|
||||
[[ -n "$release" ]] && version="$version-$release"
|
||||
cat > $outfile <<EOF
|
||||
unit asuro;
|
||||
|
||||
interface
|
||||
|
||||
const
|
||||
VERSION = '$version';
|
||||
VERSION_MAJOR = '$major';
|
||||
VERSION_MINOR = '$minor';
|
||||
VERSION_SUB = '$sub';
|
||||
REVISION = '$revision';
|
||||
RELEASE = '$release';
|
||||
LINE_COUNT = $linecount;
|
||||
FILE_COUNT = $sourcecount;
|
||||
DRIVER_COUNT = $drivercount;
|
||||
FPC_VERSION = '$fpcversion';
|
||||
NASM_VERSION = '$nasmversion';
|
||||
MAKE_VERSION = '$makeversion';
|
||||
COMPILE_DATE = '$compiledate';
|
||||
COMPILE_TIME = '$compiletime';
|
||||
CHECKSUM = '$checksum';
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
EOF
|
||||
echo "Generating release info..."
|
||||
wget -q https://img.shields.io/badge/version-$major.$minor.$sub--$revision$release-blue.svg -O release/version.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/revision-$revision-blue.svg -O release/revision.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/release-$release-blue.svg -O release/release.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/lines-$linecount-blueviolet.svg -O release/lines.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/files-$sourcecount-blueviolet.svg -O release/files.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/drivers-$drivercount-blueviolet.svg -O release/drivers.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/FPC_version-$fpcversion-lightgrey.svg -O release/fpcversion.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/NASM_version-$nasmversion-lightgrey.svg -O release/nasmversion.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/MAKE_version-$makeversion-lightgrey.svg -O release/makeversion.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/release_date-$compiledate-lightgrey.svg -O release/date.svg 2>/dev/null
|
||||
wget -q https://img.shields.io/badge/fingerprint-$checksum-important.svg -O release/fingerprint.svg 2>/dev/null
|
||||
set +e # These can fail on branches and such, for now
|
||||
wget -q https://img.shields.io/badge/version-$major.$minor.$sub--$revision$release-blue.svg -O release/version.svg
|
||||
wget -q https://img.shields.io/badge/revision-$revision-blue.svg -O release/revision.svg
|
||||
wget -q https://img.shields.io/badge/release-$release-blue.svg -O release/release.svg
|
||||
wget -q https://img.shields.io/badge/lines-$linecount-blueviolet.svg -O release/lines.svg
|
||||
wget -q https://img.shields.io/badge/files-$sourcecount-blueviolet.svg -O release/files.svg
|
||||
wget -q https://img.shields.io/badge/drivers-$drivercount-blueviolet.svg -O release/drivers.svg
|
||||
wget -q https://img.shields.io/badge/FPC_version-$fpcversion-lightgrey.svg -O release/fpcversion.svg
|
||||
wget -q https://img.shields.io/badge/NASM_version-$nasmversion-lightgrey.svg -O release/nasmversion.svg
|
||||
wget -q https://img.shields.io/badge/MAKE_version-$makeversion-lightgrey.svg -O release/makeversion.svg
|
||||
wget -q https://img.shields.io/badge/release_date-$compiledate-lightgrey.svg -O release/date.svg
|
||||
wget -q https://img.shields.io/badge/fingerprint-$checksum-important.svg -O release/fingerprint.svg
|
||||
echo "Done versioning."
|
||||
|
@ -12,15 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
{ ************************************************
|
||||
* Asuro
|
||||
* Unit: Drivers/AHCI
|
||||
* Description: AHCI SATA Driver
|
||||
************************************************
|
||||
* Author: Aaron Hance
|
||||
* Contributors:
|
||||
************************************************ }
|
||||
{
|
||||
Drivers->Storage->AHCI - AHCI SATA Driver.
|
||||
|
||||
@author(Aaron Hance <ah@aaronhance.me>)
|
||||
}
|
||||
unit AHCI;
|
||||
|
||||
interface
|
||||
|
@ -12,15 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
{ ************************************************
|
||||
* Asuro
|
||||
* Unit: Drivers/ISR46
|
||||
* Description: Primary ATA IRQ
|
||||
************************************************
|
||||
* Author: Aaron Hance
|
||||
* Contributors:
|
||||
************************************************ }
|
||||
{
|
||||
Drivers->Storage->ATA_ISR - Primary ATA IRQ.
|
||||
|
||||
@author(Aaron Hance <ah@aaronhance.me>)
|
||||
}
|
||||
unit ATA_ISR;
|
||||
|
||||
interface
|
||||
|
@ -12,16 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
{ ************************************************
|
||||
* Asuro
|
||||
* Unit: Drivers/storage/asfs
|
||||
* Description: asfs file system driver
|
||||
*
|
||||
************************************************
|
||||
* Author: Aaron Hance
|
||||
* Contributors:
|
||||
************************************************ }
|
||||
{
|
||||
Drivers->Storage->ASFS - Asuro Filesystem Driver.
|
||||
|
||||
@author(Aaron Hance <ah@aaronhance.me>)
|
||||
}
|
||||
unit asfs;
|
||||
|
||||
interface
|
||||
|
@ -12,6 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
{
|
||||
ProgManager - Central initialization for terminal registered, baked-in programs.
|
||||
|
||||
@author(Kieron Morris <kjm@kieronmorris.me>)
|
||||
}
|
||||
unit progmanager;
|
||||
|
||||
interface
|
||||
@ -23,6 +28,7 @@ uses
|
||||
edit, netlog, themer,
|
||||
memview, udpcat, dhclient, vbeinfo;
|
||||
|
||||
{ Initialize all baked-in programs }
|
||||
procedure init();
|
||||
|
||||
implementation
|
||||
|
Loading…
x
Reference in New Issue
Block a user