DENV(1)                           User Manual                          DENV(1)

NAME
       denv init

SYNOPSIS
       denv init [help|-h|--help] IMAGE [WORKSPACE] [--no-gitignore] [--clean-
       env|--no-copy-all] [--force] [--name NAME] [--no-mkdir|--mkdir]  [--no-
       over|--over]

OPTIONS
       --help,  -h,  or help print a short help message for denv or one of its
       sub commands

       --no-gitignore do not generate a gitignore file when setting up  a  new
       denv configuration

       --clean-env or --no-copy-all do not enable copying of all host environ‐
       ment variables within the new denv.  Later activation (or deactivation)
       of  copying all host environment variables can be done with denv config
       env all See denv-config(1) for details on denv config.

       --force  forces  re-initialization  of  a  denv  even  if  the  current
       workspace has one

       --name  sets  the name for the denv workspace that is being initialized
       to NAME

       --[no-]mkdir don't prompt about if denv can create the workspace direc‐
       tory. Just do it (--mkdir) or not (--no-mkdir).

       --[no-]over don't prompt about if denv should overwrite a configuration
       within the workspace or override a configuration in a parent directory.
       Just do it (--over) or not (--no-over).

ARGUMENTS
       IMAGE the name of a container image to use when starting a container to
       host the developer environment

       WORKSPACE the directory where the environment should be stored and con‐
       figured, used by default as the home directory within the developer en‐
       vironment so that the environment can also have its own shell  configu‐
       ration files and ~/.local paths.  If not provided, we just use the cur‐
       rent working directory.  If provided, we make sure it exists, enter  it
       and then continue.  If WORKSPACE already has a denv (or one of its par‐
       ent directories has a denv), then the user is prompted on if they  wish
       to  overwrite (in the case that WORKSPACE itself is a denv) or override
       (otherwise) the already-existing denv.

EXAMPLES
       Print the command line help for denv init without making any  edits  to
       the filesystem or beginning the process of configuring a new denv.

              denv init help

       Create  a new denv based off the python:3.11 container image within the
       current directory, allowing all host environment variables to be copied
       into the denv when running.

              denv init python:3.11

       Same  as  above,  but do not allow the host environment variables to be
       copied into the denv.

              denv init --clean-env python:3.11

       Create a new denv based off the python:3.11 container image and set its
       name to “py311” rather than the workspace directory’s name.

              denv init python:3.11 --name py311

       Create a new denv in some other location besides the current directory.
       Since the directory has the same name as above, the denvs  will  appear
       similar even though their workspace directory (on the host) may be dif‐
       ferent names.

              denv init python:3.11 py311

       As a standalone program, denv can be used within other scripts and sup‐
       port  programs.   With this in mind, a common process is to have a denv
       configuration that can be ensured to exist for the rest  of  additional
       tasks.   The  following example uses the --no-mkdir and --no-over flags
       to  silently  ensure  that  the  present  working  directory  has   the
       python:3.11 image configured.

              denv init --no-mkdir --no-over python:3.11

       WARNING:  denv  init  does not ensure that the image is the same as the
       one passed, it just quielty refused to overwrite an existing configura‐
       tion  allowing  it  to be quickly bypassed if the configuration has al‐
       ready been made or initialize the configuration if no configuration  is
       present.

DEFAULT CONFIGURATION
       denv  init  makes the following choices on configuration that can later
       be edited by denv config if the user desires.

       • The interative shell is /bin/bash -i, change with denv  config  shell
         PROGRAM

       • No  specific environment variables are copied from the host or set to
         specific values, change with denv config  env  copy  VAR[=VAL].   The
         denv  either  copies  all host environment variables (the default) or
         none (with --clean-env).

       • No extra diretories are mounted into the denv (besides those automat‐
         ically mounted by the underlying container runner, e.g. apptainer au‐
         to-mounts /tmp), update with denv config mounts DIR.

       • The denv is connected to the host’s network, disable with denv config
         network off.

SEE ALSO
       denv(1), denv-config(1), denv-check(1)

denv                               Aug 2024                            DENV(1)