Add dev container configuration (#23)
* add devcontainer support files * update rbuild to look in /usr/bin/openscad-nightly for openscad-nightly
This commit is contained in:
19
.devcontainer/devcontainer.json
Normal file
19
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||||
|
// README at: https://github.com/devcontainers/templates/tree/main/src/debian
|
||||||
|
{
|
||||||
|
"build": { "dockerfile": "dockerfile" },
|
||||||
|
"features": {
|
||||||
|
"ghcr.io/devcontainers/features/python:1": {
|
||||||
|
"installTools": true,
|
||||||
|
"version": "latest"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"customizations": {
|
||||||
|
},
|
||||||
|
|
||||||
|
"remoteUser": "vscode",
|
||||||
|
"mounts": [
|
||||||
|
"source=rackstack-bashhistory,target=/commandhistory,type=volume"
|
||||||
|
]
|
||||||
|
}
|
||||||
21
.devcontainer/dockerfile
Normal file
21
.devcontainer/dockerfile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
FROM mcr.microsoft.com/devcontainers/base:bookworm
|
||||||
|
|
||||||
|
RUN wget -qO- https://files.openscad.org/OBS-Repository-Key.pub | sudo tee /etc/apt/trusted.gpg.d/obs-openscad-nightly.asc \
|
||||||
|
&& echo "deb https://download.opensuse.org/repositories/home:/t-paul/Debian_12/ ./" >> /etc/apt/sources.list.d/openscad.list \
|
||||||
|
&& apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
&& apt-get -y install --no-install-recommends openscad openscad-nightly libpng-dev libjpeg-dev libtiff-dev
|
||||||
|
|
||||||
|
|
||||||
|
RUN apt-get -y install --no-install-recommends imagemagick
|
||||||
|
|
||||||
|
RUN curl -sL http://www.lcdf.org/gifsicle/gifsicle-1.91.tar.gz | tar -zx \
|
||||||
|
&& cd gifsicle-1.91 \
|
||||||
|
&& ./configure --disable-gifview \
|
||||||
|
&& make install
|
||||||
|
|
||||||
|
ARG USERNAME=vscode
|
||||||
|
RUN SNIPPET="export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" \
|
||||||
|
&& mkdir /commandhistory \
|
||||||
|
&& touch /commandhistory/.bash_history \
|
||||||
|
&& chown -R $USERNAME /commandhistory \
|
||||||
|
&& echo "$SNIPPET" >> "/home/$USERNAME/.bashrc"
|
||||||
23
rbuild.py
23
rbuild.py
@ -20,12 +20,25 @@ if os.name == "posix":
|
|||||||
else: # Assume Linux if not macOS
|
else: # Assume Linux if not macOS
|
||||||
print("Operating System: Linux")
|
print("Operating System: Linux")
|
||||||
PATH_TO_OPENSCAD = '/usr/bin/openscad'
|
PATH_TO_OPENSCAD = '/usr/bin/openscad'
|
||||||
PATH_TO_OPENSCAD_NIGHTLY = '/snap/bin/openscad-nightly'
|
|
||||||
|
if binary_exists(PATH_TO_OPENSCAD):
|
||||||
|
print(f"Binary found at {PATH_TO_OPENSCAD}")
|
||||||
|
else:
|
||||||
|
print(f"Binary not found at {PATH_TO_OPENSCAD}")
|
||||||
|
|
||||||
if binary_exists(PATH_TO_OPENSCAD):
|
POSSIBLE_PATH_LOCATIONS_FOR_OPENSCAD_NIGHTLY = [
|
||||||
print(f"Binary found at {PATH_TO_OPENSCAD}")
|
'/snap/bin/openscad-nightly', #Path when installed using the snap tooling
|
||||||
else:
|
'/usr/bin/openscad-nightly' #Path when installed using apt (also used in dockerfile)
|
||||||
print(f"Binary not found at {PATH_TO_OPENSCAD}")
|
]
|
||||||
|
|
||||||
|
PATH_TO_OPENSCAD_NIGHTLY = ''
|
||||||
|
for LOCATION in POSSIBLE_PATH_LOCATIONS_FOR_OPENSCAD_NIGHTLY:
|
||||||
|
if binary_exists(LOCATION):
|
||||||
|
print(f"Nightly binary found at {LOCATION}")
|
||||||
|
PATH_TO_OPENSCAD_NIGHTLY = LOCATION
|
||||||
|
|
||||||
|
if PATH_TO_OPENSCAD_NIGHTLY == '':
|
||||||
|
print('Nightly binary not installed')
|
||||||
|
|
||||||
elif os.name == "nt": # Windows
|
elif os.name == "nt": # Windows
|
||||||
print("Operating System: Windows")
|
print("Operating System: Windows")
|
||||||
|
|||||||
Reference in New Issue
Block a user