Adding publish, untested.
This commit is contained in:
1
BUILD
1
BUILD
@ -24,4 +24,3 @@ Default('posix')
|
|||||||
Default('web')
|
Default('web')
|
||||||
Default('esp32')
|
Default('esp32')
|
||||||
Default('pico')
|
Default('pico')
|
||||||
Default('site')
|
|
||||||
|
|||||||
27
configure.py
27
configure.py
@ -18,7 +18,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
VERSION = '7.0.7.16'
|
VERSION = '7.0.7.17'
|
||||||
STABLE_VERSION = '7.0.6.19'
|
STABLE_VERSION = '7.0.6.19'
|
||||||
OLD_STABLE_VERSION = '7.0.5.4'
|
OLD_STABLE_VERSION = '7.0.5.4'
|
||||||
|
|
||||||
@ -266,6 +266,15 @@ rule forth_test
|
|||||||
deps = gcc
|
deps = gcc
|
||||||
command = $src/tools/importation.py -i $test -o $out --depsout $depfile --no-out && $interp $forth $test 2>&1 | cat >$out
|
command = $src/tools/importation.py -i $test -o $out --depsout $depfile --no-out && $interp $forth $test 2>&1 | cat >$out
|
||||||
|
|
||||||
|
rule publish
|
||||||
|
description = PUBLISH $pubpath
|
||||||
|
command = $src/tools/publish.py --src $in --dst $pubpath \
|
||||||
|
-DVERSION=$VERSION \
|
||||||
|
-DSTABLE_VERSION=$STABLE_VERSION \
|
||||||
|
-DOLD_STABLE_VERSION=$OLD_STABLE_VERSION \
|
||||||
|
-FREVISION=$dst/gen/REVISION \
|
||||||
|
-FREVSHORT=$dst/gen/REVSHORT
|
||||||
|
|
||||||
rule clean
|
rule clean
|
||||||
description = CLEAN
|
description = CLEAN
|
||||||
command = rm -rf $dst/
|
command = rm -rf $dst/
|
||||||
@ -379,6 +388,10 @@ def Alias(target, source):
|
|||||||
return target
|
return target
|
||||||
|
|
||||||
|
|
||||||
|
def Shortcut(target, source, command):
|
||||||
|
return Alias(target, Command('$dst/gen/' + target + '.not', source, command))
|
||||||
|
|
||||||
|
|
||||||
def Copy(target, source):
|
def Copy(target, source):
|
||||||
global output
|
global output
|
||||||
output += f'build {target}: copy {source}\n'
|
output += f'build {target}: copy {source}\n'
|
||||||
@ -423,6 +436,18 @@ def Command(target, source, command, implicit=[]):
|
|||||||
return target
|
return target
|
||||||
|
|
||||||
|
|
||||||
|
def Publish(target, source, pubpath):
|
||||||
|
global output
|
||||||
|
implicit = ' '.join([
|
||||||
|
'$src/tools/publish.py',
|
||||||
|
'$dst/gen/REVISION',
|
||||||
|
'$dst/gen/REVSHORT',
|
||||||
|
])
|
||||||
|
output += f'build {target}: publish {source} | {implicit}\n'
|
||||||
|
output += f' pubpath = {pubpath}\n'
|
||||||
|
return target
|
||||||
|
|
||||||
|
|
||||||
def Default(target):
|
def Default(target):
|
||||||
global output
|
global output
|
||||||
output += f'default {target}\n'
|
output += f'default {target}\n'
|
||||||
|
|||||||
@ -77,7 +77,7 @@ BOARDS = {
|
|||||||
}
|
}
|
||||||
for board in BOARDS:
|
for board in BOARDS:
|
||||||
options = BOARDS[board]
|
options = BOARDS[board]
|
||||||
Command(f'$dst/esp32/{board}_build/flash.not',
|
Shortcut(f'{board}-flash',
|
||||||
'$dst/esp32/ESP32forth/ESP32forth.ino',
|
'$dst/esp32/ESP32forth/ESP32forth.ino',
|
||||||
f"""\
|
f"""\
|
||||||
rm -rf {WINTMP}/ueforth_esp32/ESP32forth/ && \
|
rm -rf {WINTMP}/ueforth_esp32/ESP32forth/ && \
|
||||||
@ -89,7 +89,6 @@ for board in BOARDS:
|
|||||||
--build-path ueforth_esp32/{board}_build \
|
--build-path ueforth_esp32/{board}_build \
|
||||||
--build-cache-path ueforth_esp32/{board}_cache \
|
--build-cache-path ueforth_esp32/{board}_cache \
|
||||||
ueforth_esp32/ESP32forth/ESP32forth.ino""")
|
ueforth_esp32/ESP32forth/ESP32forth.ino""")
|
||||||
Alias(f'{board}-flash', f'$dst/esp32/{board}_build/flash.not')
|
|
||||||
Command(f'$dst/esp32/{board}_build/ESP32forth.ino.bin',
|
Command(f'$dst/esp32/{board}_build/ESP32forth.ino.bin',
|
||||||
'$dst/esp32/ESP32forth/ESP32forth.ino',
|
'$dst/esp32/ESP32forth/ESP32forth.ino',
|
||||||
f"""\
|
f"""\
|
||||||
|
|||||||
63
site/BUILD
63
site/BUILD
@ -12,14 +12,6 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
REPLACE = [
|
|
||||||
'./tools/importation.py',
|
|
||||||
'-I', 'site',
|
|
||||||
'-DVERSION=' + VERSION,
|
|
||||||
'-DSTABLE_VERSION' + STABLE_VERSION,
|
|
||||||
'-DOLD_STABLE_VERSION=' + OLD_STABLE_VERSION,
|
|
||||||
]
|
|
||||||
|
|
||||||
OPTIONS = '-I $src/site'
|
OPTIONS = '-I $src/site'
|
||||||
UE_OPTIONS = OPTIONS + ' -DFORTH=uEForth'
|
UE_OPTIONS = OPTIONS + ' -DFORTH=uEForth'
|
||||||
ESP_OPTIONS = OPTIONS + ' -DFORTH=ESP32forth'
|
ESP_OPTIONS = OPTIONS + ' -DFORTH=ESP32forth'
|
||||||
@ -60,4 +52,57 @@ DEPLOY_ITEMS += [
|
|||||||
Copy('$dst/deploy/static/favicon.ico', '$dst/resources/eforth.ico'),
|
Copy('$dst/deploy/static/favicon.ico', '$dst/resources/eforth.ico'),
|
||||||
]
|
]
|
||||||
|
|
||||||
Alias('site', ' '.join(DEPLOY_ITEMS))
|
Alias('deploy', ' '.join(DEPLOY_ITEMS))
|
||||||
|
|
||||||
|
Alias('publish', ' '.join([
|
||||||
|
Alias('publish-esp32', ' '.join([
|
||||||
|
Publish('publish-esp32-rev',
|
||||||
|
'$dst/esp32/ESP32forth.zip',
|
||||||
|
'ESP32forth-{{VERSION}}-{{REVSHORT}}.zip'),
|
||||||
|
Shortcut('publish-esp32-ver',
|
||||||
|
'$dst/esp32/ESP32forth.zip',
|
||||||
|
'ESP32forth-{{VERSION}}.zip'),
|
||||||
|
])),
|
||||||
|
Alias('publish-pico-ice', ' '.join([
|
||||||
|
Shortcut('publish-pico-ice-rev',
|
||||||
|
'$dst/pico-ice/ueforth-pico-ice.zip',
|
||||||
|
'ueforth-pico-ice-{{VERSION}}-{{REVSHORT}}.zip'),
|
||||||
|
Shortcut('publish-pico-ice-ver',
|
||||||
|
'$dst/pico-ice/ueforth-pico-ice.zip',
|
||||||
|
'ueforth-pico-ice-{{VERSION}}.zip'),
|
||||||
|
])),
|
||||||
|
Alias('publish-linux', ' '.join([
|
||||||
|
Shortcut('publish-linux-rev',
|
||||||
|
'$dst/posix/ueforth',
|
||||||
|
'ueforth-{{VERSION}}-{{REVSHORT}}.linux'),
|
||||||
|
Shortcut('publish-linux-ver',
|
||||||
|
'$dst/posix/ueforth',
|
||||||
|
'ueforth-{{VERSION}}.linux'),
|
||||||
|
])),
|
||||||
|
Alias('publish-web', ' '.join([
|
||||||
|
Shortcut('publish-web-rev',
|
||||||
|
'$dst/web/ueforth.js',
|
||||||
|
'ueforth-{{VERSION}}-{{REVSHORT}}.js'),
|
||||||
|
Shortcut('publish-web-ver',
|
||||||
|
'$dst/web/ueforth.js',
|
||||||
|
'ueforth-{{VERSION}}.js'),
|
||||||
|
])),
|
||||||
|
Alias('publish-win', ' '.join([
|
||||||
|
Alias('publish-win32', ' '.join([
|
||||||
|
Shortcut('publish-win32-rev',
|
||||||
|
'$dst/windows/uEf32.exe',
|
||||||
|
'uEf32-{{VERSION}}-{{REVSHORT}}.exe'),
|
||||||
|
Shortcut('publish-win32-ver',
|
||||||
|
'$dst/windows/uEf32.exe',
|
||||||
|
'uEf32-{{VERSION}}.exe'),
|
||||||
|
])),
|
||||||
|
Alias('publish-win64', ' '.join([
|
||||||
|
Shortcut('publish-win64-rev',
|
||||||
|
'$dst/windows/uEf64.exe',
|
||||||
|
'uEf64-{{VERSION}}-{{REVSHORT}}.exe'),
|
||||||
|
Shortcut('publish-win64-ver',
|
||||||
|
'$dst/windows/uEf64.exe',
|
||||||
|
'uEf64-{{VERSION}}.exe'),
|
||||||
|
])),
|
||||||
|
])),
|
||||||
|
]))
|
||||||
|
|||||||
41
tools/publish.py
Executable file
41
tools/publish.py
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#! /usr/bin/env python3
|
||||||
|
# Copyright 2023 Bradley D. Nelson
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
ARCHIVE = 'gs://eforth/releases'
|
||||||
|
GSUTIL = 'CLOUDSDK_CORE_PROJECT=eforth gsutil'
|
||||||
|
GSUTIL_CP = f'{GSUTIL} -h Cache-Control:public,max-age=60 cp -a public-read'
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
prog='publish',
|
||||||
|
description='Publish with substitutions')
|
||||||
|
parser.add_argument('--src', required=True)
|
||||||
|
parser.add_argument('--dst', required=True)
|
||||||
|
parser.add_argument('-D', action='append')
|
||||||
|
parser.add_argument('-F', action='append')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
dst = args.dst
|
||||||
|
for r in replacements:
|
||||||
|
name, value = r.split('=', 1)
|
||||||
|
dst = dst.replace('{{' + name + '}}', value)
|
||||||
|
for r in file_replacements:
|
||||||
|
name, filename = r.split('=', 1)
|
||||||
|
imported.add(os.path.abspath(filename))
|
||||||
|
line = line.replace('{{' + name + '}}', open(filename).read())
|
||||||
|
|
||||||
|
subprocess.run(f'{GSUTIL_CP} {args.src} {args.dst}', shell=True, check=True)
|
||||||
Reference in New Issue
Block a user