├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── .subuser.json
├── COMMUNITY.rst
├── CONTRIBUTING.rst
├── COPYING.LGPL
├── Makefile
├── README.rst
├── VERSION
├── docs
├── .gitignore
├── Makefile
├── README.md
├── _themes
│ └── sphinx_rtd_theme
│ │ ├── __init__.py
│ │ ├── breadcrumbs.html
│ │ ├── footer.html
│ │ ├── layout.html
│ │ ├── layout_old.html
│ │ ├── search.html
│ │ ├── searchbox.html
│ │ ├── static
│ │ ├── css
│ │ │ ├── badge_only.css
│ │ │ └── theme.css
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ └── fontawesome-webfont.woff
│ │ ├── images
│ │ │ ├── subuser-dev-freecad.mp4
│ │ │ ├── subuser-logo.png
│ │ │ ├── subuser-vision.mp4
│ │ │ └── subuser-website.svg
│ │ └── js
│ │ │ └── theme.js
│ │ ├── theme.conf
│ │ └── versions.html
├── commands
│ ├── generate-command-docs.py
│ └── index.rst.head
├── community-guidelines.rst
├── community.rst
├── conf.py
├── deploy.sh
├── developers
│ ├── code-docs.rst
│ ├── code-docs
│ │ ├── config.rst
│ │ ├── docker.rst
│ │ ├── installed-images.rst
│ │ ├── registry.rst
│ │ └── user.rst
│ ├── common-tasks.rst
│ ├── contributing.rst
│ ├── index.rst
│ ├── object-hierarchy.uxf
│ └── restructure-pylint-output
├── docs-dev
│ ├── image
│ │ └── SubuserImagefile
│ └── permissions.json
├── features.rst
├── flaws.rst
├── images
│ ├── codigo.png
│ ├── containerjournal.jpg
│ ├── habra.svg
│ ├── heise.png
│ ├── infoworld.png
│ ├── linuxfr.png
│ ├── pro-linux.png
│ └── usually_looks_scarier_than_it_is.png
├── index.rst
├── installation.rst
├── news.rst
├── news
│ ├── 0.3.rst
│ ├── 0.4.rst
│ ├── 0.5.rst
│ ├── 0.6.rst
│ ├── virtualbox.uxf
│ ├── wayland.uxf
│ └── x11-bridge.uxf
├── packaging.rst
├── presentations.rst
├── press.rst
├── related-projects.rst
├── screenshots.rst
├── screenshots
│ ├── emacs+texttest.png
│ ├── libreoffice.png
│ ├── liferea+firefox.png
│ └── subuser-dev-tg.png
├── security.rst
├── subuser-standard
│ ├── generate-permissions-rst.py
│ ├── image-source-identifiers.rst
│ ├── repositories.rst
│ ├── serializations.rst
│ ├── serializations
│ │ ├── broken-images-dot-json-file-format.rst
│ │ ├── config-dot-json-file-format.rst
│ │ ├── installed-images-dot-json-file-format.rst
│ │ ├── locked-subusers-dot-json-file-format.rst
│ │ ├── registry
│ │ │ ├── registry-dot-lock.rst
│ │ │ ├── registry.rst
│ │ │ ├── repositories-dot-json-file-format.rst
│ │ │ ├── repository-states-dot-json-file-format.rst
│ │ │ ├── subuser-permissions.rst
│ │ │ └── subusers-dot-json-file-format.rst
│ │ ├── runtime-cache.rst
│ │ └── service-lock-files.rst
│ ├── special-files.rst
│ ├── standard.rst
│ └── subuser-names.rst
├── tutorial-use.rst
└── use-cases.rst
├── logic
├── execute-json-from-fifo
├── interactive-image-builder
├── preload-repl.py
├── subuser
└── test
├── pre-release
├── refactor
├── resources
├── man
│ ├── execute-json-from-fifo.1
│ └── subuser.1
└── subuser_bash_completion.sh
├── setup.py
├── subuserlib
├── )
├── __init__.py
├── builtInCommands
│ ├── __init__.py
│ ├── describe.py
│ ├── dev.py
│ ├── list.py
│ ├── pkg.py
│ ├── print-dependency-info.py
│ ├── ps.py
│ ├── registry.py
│ ├── remove-old-images.py
│ ├── repair.py
│ ├── repository.py
│ ├── run.py
│ ├── subuser.py
│ ├── update.py
│ └── version.py
├── classes
│ ├── __init__.py
│ ├── brokenImages.py
│ ├── config.py
│ ├── describable.py
│ ├── docker
│ │ ├── __init__.py
│ │ ├── container.py
│ │ ├── dockerDaemon.py
│ │ └── mockDockerDaemon.py
│ ├── endUser.py
│ ├── exceptions.py
│ ├── fileBackedObject.py
│ ├── fileStructure.py
│ ├── gitRepository.py
│ ├── imageSource.py
│ ├── installationTask.py
│ ├── installedImage.py
│ ├── installedImages.py
│ ├── jsonStateSerializer.py
│ ├── operation.py
│ ├── permissions.py
│ ├── permissionsAccepters
│ │ ├── __init__.py
│ │ ├── acceptPermissionsAtCLI.py
│ │ └── permissionsAccepter.py
│ ├── registry.py
│ ├── repositories.py
│ ├── repository.py
│ ├── service.py
│ ├── subuser.py
│ ├── subuserSubmodules
│ │ ├── __init__.py
│ │ └── run
│ │ │ ├── __init__.py
│ │ │ ├── runReadyImage.py
│ │ │ ├── runtime.py
│ │ │ ├── runtimeCache.py
│ │ │ └── x11Bridge.py
│ ├── subusers.py
│ ├── uhttpConnection.py
│ ├── user.py
│ └── userOwnedObject.py
├── commandLineArguments.py
├── commands.py
├── data
│ ├── VERSION
│ ├── config.json
│ └── repositories.json
├── docker.py
├── executablePath.py
├── loadMultiFallbackJsonConfigFile.py
├── lock.py
├── paths.py
├── permissions.py
├── print.py
├── profile.py
├── registry.py
├── removeOldImages.py
├── repository.py
├── resolve.py
├── subprocessExtras.py
├── subuser.py
├── terminalColors.py
├── test.py
├── update.py
├── verify.py
└── version.py
└── test
├── Weird-repositories
├── With-subuser-foo-having-broken-permissions
│ ├── Describe-image-foo-full-path
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-image-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-subuser-foo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Dryrun-foo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-subusers-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── edit-permissions-foo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── remove-foo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run-foo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── With-subuser-foo-having-no-installed-image
│ ├── Describe-image-foo-full-path
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-image-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-subuser-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Dryrun-foo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-subusers-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── edit-permissions-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── remove-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run-foo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── add-broken-non-existant-dependency
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-broken-permissions-file
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-broken-syntax
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── image-source-with-spaces
│ ├── config.texttest
│ ├── options.texttest
│ ├── run.sh
│ ├── stderr.texttest
│ └── stdout.texttest
├── incorrect-permission-types
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── subuser-add-€-from-€@local-test-repo-§€č
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── base-executable
├── --help
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── No-arguments
│ ├── stderr.texttest
│ └── stdout.texttest
├── Non-existant-subuser-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── config.texttest
└── testsuite.texttest
├── config.texttest
├── describe
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-one-subuser-installed-from-a-temporary-repo-named-foo
│ ├── Describe-image-foo-full-path
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-image-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-subuser-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── With-one-subuser-named-foo
│ ├── Describe-image-foo-full-path
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-image-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Describe-subuser-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── non-existant-sub-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── docker
└── images.json
├── environment.texttest
├── global-doctests
├── hashtest
├── bar
│ ├── New York
│ └── abacus
└── blah
├── home
└── .subuser
│ └── repositories.json
├── list
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── List-available-from-URI
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── List-available-from-UTF8-URI
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── List-available-from-invalid-URI
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── List-available-from-non-existant-URI
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-one-subuser-installed-from-a-temporary-repo-named-foo
│ ├── List-available-long
│ │ ├── config.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-available-specifying-repo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-available
│ │ ├── config.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-installed-images-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-installed-images
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-repositories-long
│ │ ├── config.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-repositories
│ │ ├── config.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-subusers-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-subusers
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── With-one-subuser-named-foo
│ ├── List-available-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-available
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-installed-images-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-installed-images
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-repositories-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-repositories
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-subusers-long
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── List-subusers
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── non-existant-sub-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── pkg
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-initialized-repo
│ ├── Add-repository
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Add-with-non-standard-paths
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Init-with-non-standard-images-dir
│ │ ├── .texttest
│ │ ├── config.texttest
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ ├── stdout.texttest
│ │ └── subuser-json.texttest
│ ├── Init
│ │ ├── config.texttest
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ ├── stdout.texttest
│ │ └── subuser-json.texttest
│ ├── config.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── With-uninitialized-repo
│ ├── Add-repository
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Add-with-non-standard-paths
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── Init-with-non-standard-images-dir
│ │ ├── config.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ ├── stdout.texttest
│ │ └── subuser-json.texttest
│ ├── Init
│ │ ├── config.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ ├── stdout.texttest
│ │ └── subuser-json.texttest
│ └── testsuite.texttest
├── no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── non-existant-sub-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── prepare-test-repos-and-run.sh
├── prepare-test-repos.sh
├── print-dependency-info
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── Doesn't-crash-for-non-existant-image-sources
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── Printing-works-for-existing-image-sources
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── registry
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-one-subuser-named-foo
│ ├── config.texttest
│ ├── log
│ │ ├── config.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── rollback
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── log
│ ├── config.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── non-existant-sub-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── rollback
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── remove-old-images
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-subuser-dependent-added-then-removed
│ ├── config.texttest
│ ├── dry-run
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── no-aguments
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── With-subuser-foo-added-then-removed
│ ├── config.texttest
│ ├── dry-run
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── no-aguments
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── no-aguments
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── repair
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── no-arguments
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── repository
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-local-test-repo-§€č-added
│ ├── With-subuser-blah-added-from-§€č
│ │ ├── config.texttest
│ │ ├── remove-repo-§€č
│ │ │ ├── exitcode.texttest
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── run.sh
│ │ └── testsuite.texttest
│ ├── config.texttest
│ ├── remove-non-existant-repo
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── remove-§€č
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── add-local-test-repo-§€č
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-non-existant
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-remote-test-repo
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── non-existant-sub-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── run
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-one-subuser-installed-from-a-temporary-repo-named-foo
│ ├── config.texttest
│ ├── run---dry-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── With-one-subuser-named-foo
│ ├── --entrypoint-set
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── run---dry-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── With-one-subuser-supa-which-has-all-the-permissions
│ ├── config.texttest
│ ├── dry-run-supa
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── no-arguments
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── run-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── subuser
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-one-subuser-named-foo
│ ├── Foo-with-entrypoints-exposed
│ │ ├── config.texttest
│ │ ├── hide-entrypoints-foo
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── run.sh
│ │ └── testsuite.texttest
│ ├── With-foo-added-then-removed
│ │ ├── config.texttest
│ │ ├── git-diff
│ │ │ ├── config.texttest
│ │ │ ├── options.texttest
│ │ │ ├── run.sh
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── list-subusers
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── registry-log
│ │ │ ├── config.texttest
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── run.sh
│ │ └── testsuite.texttest
│ ├── add-foo-despite-foo-already-existin
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── add-to-path-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── edit-permissions-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── expose-entrypoints-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── hide-entry-points-foo
│ │ └── options.texttest
│ ├── remove-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── remove-from-path-foo
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ └── testsuite.texttest
├── add-foo-bar@non-existant-repo-path
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-foo-bar@non-existant-repo
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-foo-non-existant-image-source
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-subuser-foo
│ ├── config.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-subuser-supa-which-has-all-the-permissions
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-subuser-§€č
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── add-to-path-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── edit-permissions-no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── edit-permissions-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── expose-entrypoints-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── hide-entrypoints-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── no-arguments
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── non-existant-sub-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── remove-from-path-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── remove-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── testsuite.texttest
├── test-repos
├── default-test-repo
│ ├── foo
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ ├── subuser-internal-xpra-client
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ └── subuser-internal-xpra-server
│ │ ├── image
│ │ └── SubuserImagefile
│ │ └── permissions.json
├── different-sets-of-permissions
│ └── all-permissions
│ │ ├── image
│ │ └── SubuserImagefile
│ │ └── permissions.json
├── local-test-repo-§€č
│ ├── blah
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ ├── image source with spaces
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ ├── permissions-with-incorrect-types
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ └── €
│ │ ├── image
│ │ └── SubuserImagefile
│ │ └── permissions.json
├── remote-test-repo
│ ├── .subuser.json
│ ├── dependent
│ │ ├── image-dir
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ └── images
│ │ ├── bar
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ │ ├── broken-non-existant-dependency
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ │ ├── broken-permissions-file
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ │ ├── broken-syntax
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ │ ├── dependency1
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ │ ├── dependency2
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ │ ├── dependency3
│ │ ├── image
│ │ │ └── SubuserImagefile
│ │ └── permissions.json
│ │ └── intermediary
│ │ ├── image
│ │ └── SubuserImagefile
│ │ └── permissions.json
└── version-constrained-test-repo
│ ├── .subuser.json
│ └── bip
│ ├── image
│ └── SubuserImagefile
│ └── permissions.json
├── test
├── config.texttest
├── doctests
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── run.sh
└── testsuite.texttest
├── testsuite.texttest
├── texttest-dev
├── image
│ └── SubuserImagefile
└── permissions.json
├── update
├── -h
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── With-subuser-dependent
│ ├── With-intermediate-image-source-changed
│ │ ├── all
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── config.texttest
│ │ ├── run.sh
│ │ ├── subusers-dependent
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ └── testsuite.texttest
│ ├── With-subuser-dependent-locked
│ │ ├── With-intermediate-image-source-changed
│ │ │ ├── all
│ │ │ │ ├── options.texttest
│ │ │ │ ├── stderr.texttest
│ │ │ │ └── stdout.texttest
│ │ │ ├── config.texttest
│ │ │ ├── run.sh
│ │ │ ├── subusers-dependent
│ │ │ │ ├── options.texttest
│ │ │ │ ├── stderr.texttest
│ │ │ │ └── stdout.texttest
│ │ │ └── testsuite.texttest
│ │ ├── With-subuser-dependent-with-changed-permissions
│ │ │ ├── all
│ │ │ │ ├── options.texttest
│ │ │ │ ├── stderr.texttest
│ │ │ │ └── stdout.texttest
│ │ │ ├── config.texttest
│ │ │ ├── run.sh
│ │ │ ├── subusers-dependent
│ │ │ │ ├── options.texttest
│ │ │ │ ├── stderr.texttest
│ │ │ │ └── stdout.texttest
│ │ │ └── testsuite.texttest
│ │ ├── all
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── config.texttest
│ │ ├── lock-subuser-to-depedent-non-existant-commit
│ │ │ ├── exitcode.texttest
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── run.sh
│ │ ├── subusers-dependent
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── testsuite.texttest
│ │ └── unlock-dependent
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ ├── With-subuser-dependent-with-changed-permissions
│ │ ├── all
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ ├── config.texttest
│ │ ├── run.sh
│ │ ├── subusers-dependent
│ │ │ ├── options.texttest
│ │ │ ├── stderr.texttest
│ │ │ └── stdout.texttest
│ │ └── testsuite.texttest
│ ├── all
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── config.texttest
│ ├── lock-subuser-to-depedent-HEAD
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── lock-subuser-to-depedent-non-existant-commit
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── run.sh
│ ├── subusers-dependent
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ ├── testsuite.texttest
│ ├── unlock-dependent-despite-not-being-locked
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
│ └── update-subusers-dependent-as-well-as-non-existant-subuser
│ │ ├── exitcode.texttest
│ │ ├── options.texttest
│ │ ├── stderr.texttest
│ │ └── stdout.texttest
├── lock-subuser-to-no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── lock-subuser-to-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── non-existant-sub-command
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── testsuite.texttest
├── unlock-subuser-no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── unlock-subuser-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── update-all
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
├── update-subusers-no-arguments
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── update-subusers-non-existant-subuser
│ ├── exitcode.texttest
│ ├── options.texttest
│ ├── stderr.texttest
│ └── stdout.texttest
└── version
├── --json
├── options.texttest
├── stderr.texttest
└── stdout.texttest
├── -h
├── options.texttest
├── stderr.texttest
└── stdout.texttest
├── no-arguments
├── options.texttest
├── stderr.texttest
└── stdout.texttest
└── testsuite.texttest
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: ci
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | pull_request:
8 |
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - name: Checkout
14 | uses: actions/checkout@v2
15 | - name: Set up Python
16 | uses: actions/setup-python@v1
17 | with:
18 | python-version: 3.9
19 | - name: Test
20 | run: |
21 | python setup.py bdist_wheel
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.swp
2 | *.swo
3 | *.pyc
4 | .docs-build-environment
5 | *~
6 | .bash_history
7 | .pylint.d
8 | *#*#
9 | .#*
10 | /dist/
11 | /*.egg-info
12 | /*.egg
13 | /build/
14 | .subuser-dev
15 | /code-reader/
16 | test/mock-home
17 | .mypy_cache
18 |
--------------------------------------------------------------------------------
/.subuser.json:
--------------------------------------------------------------------------------
1 | {
2 | "explicit-image-sources": {
3 | "texttest-dev": {
4 | "image-file": "test/texttest-dev/image/SubuserImagefile",
5 | "permissions-file": "test/texttest-dev/permissions.json",
6 | "build-context": "test/texttest-dev/image/"
7 | },
8 | "docs-dev": {
9 | "image-file": "docs/docs-dev/image/SubuserImagefile",
10 | "permissions-file": "docs/docs-dev/permissions.json",
11 | "build-context": "docs/docs-dev/image"
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | subuserlib/data/VERSION
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | _build/
2 | commands/*
3 | !commands/index.rst.head
4 | !commands/generate-command-docs.py
5 | _themes/sphinx_rtd_theme/static/images/subuser-website.svg
6 | _themes/sphinx_rtd_theme/static/images/subuser-vision.mp4
7 | subuser-standard/permissions-dot-json-file-format.rst
8 | developers/pylint.rst
9 | developers/images/*
10 | news/images/*
11 | ?/*
12 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | To build the docs, cd to this repositories root, run `subuser dev docs-dev` and run `make html` in the docs directory:
2 |
3 | cd ..
4 | subuser dev docs-dev
5 | cd docs
6 | make html
7 |
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/__init__.py:
--------------------------------------------------------------------------------
1 | """Sphinx ReadTheDocs theme.
2 |
3 | From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
4 |
5 | """
6 | import os
7 |
8 | VERSION = (0, 1, 5)
9 |
10 | __version__ = ".".join(str(v) for v in VERSION)
11 | __version_full__ = __version__
12 |
13 |
14 | def get_html_theme_path():
15 | """Return list of HTML theme paths."""
16 | cur_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
17 | return cur_dir
18 |
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/searchbox.html:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/images/subuser-dev-freecad.mp4:
--------------------------------------------------------------------------------
1 | ../../../../../.git/annex/objects/QM/99/SHA256E-s63428378--6fadca40972428fa8fe4b9a58a163fe807776e32672a2b1d499e8f4101116f79.mp4/SHA256E-s63428378--6fadca40972428fa8fe4b9a58a163fe807776e32672a2b1d499e8f4101116f79.mp4
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/images/subuser-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/_themes/sphinx_rtd_theme/static/images/subuser-logo.png
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/images/subuser-vision.mp4:
--------------------------------------------------------------------------------
1 | ../../../../../.git/annex/objects/GG/fm/SHA256E-s116733386--779e6e3726c5edd676b777172cca80dc5d2e4b24840085f5036f35e1686190df.mp4/SHA256E-s116733386--779e6e3726c5edd676b777172cca80dc5d2e4b24840085f5036f35e1686190df.mp4
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/static/images/subuser-website.svg:
--------------------------------------------------------------------------------
1 | ../../../../../.git/annex/objects/wg/ZZ/SHA256E-s717475--f20f06ce7bc0ac1c940026f583ec2268706c18b2f904568c66ba90cb0901fdfe.svg/SHA256E-s717475--f20f06ce7bc0ac1c940026f583ec2268706c18b2f904568c66ba90cb0901fdfe.svg
--------------------------------------------------------------------------------
/docs/_themes/sphinx_rtd_theme/theme.conf:
--------------------------------------------------------------------------------
1 | [theme]
2 | inherit = basic
3 | stylesheet = css/theme.css
4 |
5 | [options]
6 | typekit_id = hiw1hhg
7 | analytics_id =
8 | sticky_navigation = False
9 |
--------------------------------------------------------------------------------
/docs/commands/index.rst.head:
--------------------------------------------------------------------------------
1 | Using subuser - commands
2 | ========================
3 |
4 | subuser, when run from the command line, has a number of commands and subcommands. You can see a list of commands by running::
5 |
6 | $ subuser
7 |
8 | You can get help for a specific command by running::
9 |
10 | $ subuser --help
11 |
12 | .. toctree::
13 |
14 |
--------------------------------------------------------------------------------
/docs/community-guidelines.rst:
--------------------------------------------------------------------------------
1 | ../COMMUNITY.rst
--------------------------------------------------------------------------------
/docs/deploy.sh:
--------------------------------------------------------------------------------
1 | #/bin/sh
2 | rsync -ru ./_build/html/ might@37.205.9.176:/home/might/web/subuser.org/
3 |
--------------------------------------------------------------------------------
/docs/developers/code-docs/config.rst:
--------------------------------------------------------------------------------
1 | User configuration
2 | ------------------
3 |
4 | Most paths and some other settings are stored in the ``Config`` object. You should access these settings through this object.
5 |
6 | .. automodule:: subuserlib.classes.config
7 | :members:
8 | :undoc-members:
9 |
10 | The config object uses ``loadMultiFallbackJsonConfigFile`` module to help it load settings:
11 |
12 | .. automodule:: subuserlib.loadMultiFallbackJsonConfigFile
13 | :members:
14 | :undoc-members:
15 |
16 |
--------------------------------------------------------------------------------
/docs/developers/code-docs/docker.rst:
--------------------------------------------------------------------------------
1 | Communicating with Docker
2 | =========================
3 |
4 | DockerDaemon
5 | ------------
6 |
7 | .. automodule:: subuserlib.classes.docker.dockerDaemon
8 | :members:
9 | :undoc-members:
10 |
11 | Container
12 | ---------
13 |
14 | .. automodule:: subuserlib.classes.docker.container
15 | :members:
16 | :undoc-members:
17 |
18 | Helper functions
19 | ----------------
20 |
21 | .. automodule:: subuserlib.docker
22 | :members:
23 | :undoc-members:
24 |
25 |
--------------------------------------------------------------------------------
/docs/developers/code-docs/installed-images.rst:
--------------------------------------------------------------------------------
1 | Installed images
2 | ----------------
3 |
4 | .. automodule:: subuserlib.classes.installedImages
5 | :members:
6 | :undoc-members:
7 |
8 | .. automodule:: subuserlib.classes.installedImage
9 | :members:
10 | :undoc-members:
11 |
12 |
--------------------------------------------------------------------------------
/docs/developers/code-docs/user.rst:
--------------------------------------------------------------------------------
1 | The User object
2 | ---------------
3 |
4 | .. automodule:: subuserlib.classes.user
5 | :members:
6 | :undoc-members:
7 |
8 | .. toctree::
9 |
10 | registry
11 | installed-images
12 | config
13 | docker
14 |
15 |
--------------------------------------------------------------------------------
/docs/developers/contributing.rst:
--------------------------------------------------------------------------------
1 | ../../CONTRIBUTING.rst
--------------------------------------------------------------------------------
/docs/developers/index.rst:
--------------------------------------------------------------------------------
1 | Developers Corner
2 | -----------------
3 |
4 | .. toctree::
5 |
6 | contributing
7 | code-docs
8 | Travis-ci status
9 | pylint
10 | common-tasks
11 |
--------------------------------------------------------------------------------
/docs/docs-dev/image/SubuserImagefile:
--------------------------------------------------------------------------------
1 | FROM-SUBUSER-IMAGE libdebian@default
2 | RUN apt-get update && apt-get install -y python3-pip umlet pylint
3 | RUN pip3 install --upgrade sphinx requests
4 | ENV SUBUSER_TESTING TRUE
5 |
--------------------------------------------------------------------------------
/docs/docs-dev/permissions.json:
--------------------------------------------------------------------------------
1 | {
2 | "stateful-home": true,
3 | "maintainer": "Timothy Hobbs ",
4 | "executable": "/bin/bash",
5 | "basic-common-permissions": true,
6 | "access-working-directory": true,
7 | "description": "Docs build envirionment for subuser."
8 | }
--------------------------------------------------------------------------------
/docs/images/codigo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/images/codigo.png
--------------------------------------------------------------------------------
/docs/images/containerjournal.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/images/containerjournal.jpg
--------------------------------------------------------------------------------
/docs/images/habra.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/images/heise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/images/heise.png
--------------------------------------------------------------------------------
/docs/images/infoworld.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/images/infoworld.png
--------------------------------------------------------------------------------
/docs/images/linuxfr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/images/linuxfr.png
--------------------------------------------------------------------------------
/docs/images/pro-linux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/docs/images/pro-linux.png
--------------------------------------------------------------------------------
/docs/images/usually_looks_scarier_than_it_is.png:
--------------------------------------------------------------------------------
1 | ../../.git/annex/objects/Xp/5k/SHA256E-s128147--eb266bb367c1d95bea92c38647de309d1cdba35e8b8a96f3c7df8c847d678cff.png/SHA256E-s128147--eb266bb367c1d95bea92c38647de309d1cdba35e8b8a96f3c7df8c847d678cff.png
--------------------------------------------------------------------------------
/docs/news.rst:
--------------------------------------------------------------------------------
1 | News
2 | ====
3 |
4 | .. toctree::
5 | :maxdepth: 2
6 |
7 | news/0.6
8 | news/0.5
9 | news/0.4
10 | news/0.3
11 |
--------------------------------------------------------------------------------
/docs/screenshots/emacs+texttest.png:
--------------------------------------------------------------------------------
1 | ../../.git/annex/objects/fp/7Q/SHA256E-s138841--1677bbc936ba863af41f49022c893fa62eef4df84f4f8a356e45cff15782789e.png/SHA256E-s138841--1677bbc936ba863af41f49022c893fa62eef4df84f4f8a356e45cff15782789e.png
--------------------------------------------------------------------------------
/docs/screenshots/libreoffice.png:
--------------------------------------------------------------------------------
1 | ../../.git/annex/objects/W8/mp/SHA256E-s93434--d6ecd5ab0be1e575632268dd9492d5c1690bd75b4413d3f62e2722e2ae3fa50a.png/SHA256E-s93434--d6ecd5ab0be1e575632268dd9492d5c1690bd75b4413d3f62e2722e2ae3fa50a.png
--------------------------------------------------------------------------------
/docs/screenshots/liferea+firefox.png:
--------------------------------------------------------------------------------
1 | ../../.git/annex/objects/k4/Wz/SHA256E-s187713--7f32f70216b7ab7e2bf24dab05d8c7fbf2663700b40e89f59dc25c0f8a64b5b5.png/SHA256E-s187713--7f32f70216b7ab7e2bf24dab05d8c7fbf2663700b40e89f59dc25c0f8a64b5b5.png
--------------------------------------------------------------------------------
/docs/screenshots/subuser-dev-tg.png:
--------------------------------------------------------------------------------
1 | ../../.git/annex/objects/J4/jQ/SHA256E-s175035--90a1e3fcfdf0e504e0c3d0076ff485955c3373d30aa15fecd7edc4471bb6a8c6.png/SHA256E-s175035--90a1e3fcfdf0e504e0c3d0076ff485955c3373d30aa15fecd7edc4471bb6a8c6.png
--------------------------------------------------------------------------------
/docs/subuser-standard/generate-permissions-rst.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python3
2 | import sys,subprocess
3 | sys.path.append("../../logic")
4 | import subuserlib.permissions
5 |
6 | with open("permissions-dot-json-file-format.rst","w") as permissions_format_file:
7 | permissions_format_file.write(subuserlib.permissions.getDocs())
8 |
--------------------------------------------------------------------------------
/docs/subuser-standard/serializations/registry/registry-dot-lock.rst:
--------------------------------------------------------------------------------
1 | The registry.lock file format
2 | =================================
3 |
4 | The ``registry.lock`` file exists in the ``lock-dir`` when a subuser process is modifying the registry.
5 |
6 |
--------------------------------------------------------------------------------
/docs/subuser-standard/serializations/registry/registry.rst:
--------------------------------------------------------------------------------
1 | The subuser registry
2 | --------------------------------
3 |
4 | Each user is to have a registry of subusers, repositories, and repository states. This registry is a git repository with the following files:
5 |
6 | .. toctree::
7 |
8 | registry-dot-lock
9 | subusers-dot-json-file-format
10 | repositories-dot-json-file-format
11 | repository-states-dot-json-file-format
12 | subuser-permissions
13 |
14 |
--------------------------------------------------------------------------------
/docs/subuser-standard/subuser-names.rst:
--------------------------------------------------------------------------------
1 | Subuser names
2 | -------------
3 |
4 | Subuser names may contain any character allowed in file names by the host systems file system. However, subuser names beginning with the symbol ``!`` may not be created by the user, as these names are reserved for internal use by the system.
5 |
--------------------------------------------------------------------------------
/logic/preload-repl.py:
--------------------------------------------------------------------------------
1 | import subuserlib.classes.user
2 | import subuserlib.classes.gitRepository
3 | import subuserlib.classes.fileStructure
4 | import os
5 | u = subuserlib.classes.user.User()
6 | g = subuserlib.classes.gitRepository.GitRepository(u,os.path.expanduser("~/.subuser/repositories/default/"))
7 | fs = subuserlib.classes.fileStructure.BasicFileStructure(os.path.expanduser("~/.subuser/repositories/default"))
8 | fsac = g.getFileStructureAtCommit("latest")
9 |
--------------------------------------------------------------------------------
/refactor:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | git grep $1
3 | read -r -p "Continue? [y/N] " response
4 | if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]
5 | then
6 | git grep -l $1 | xargs sed -i "s/$1/$2/g"
7 | else
8 | echo "Bye."
9 | fi
10 |
--------------------------------------------------------------------------------
/subuserlib/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/subuserlib/builtInCommands/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/subuserlib/builtInCommands/describe.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python3
2 | # -*- coding: utf-8 -*-
3 |
4 | #external imports
5 | #import ...
6 | #internal imports
7 | import subuserlib.builtInCommands.list
8 |
9 | @subuserlib.profile.do_cprofile
10 | def runCommand(sysargs):
11 | subuserlib.builtInCommands.list.runCommand(sysargs)
12 |
--------------------------------------------------------------------------------
/subuserlib/classes/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/subuserlib/classes/describable.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | If you want to print a description of an object to standard output, make that object describable.
5 | """
6 |
7 | #external imports
8 | import abc
9 | #internal imports
10 | #import ...
11 |
12 | class Describable(object):
13 | __metaclass__ = abc.ABCMeta
14 |
15 | @abc.abstractmethod
16 | def describe(self):
17 | """ Print out a human readable description of the object. """
18 | pass
19 |
--------------------------------------------------------------------------------
/subuserlib/classes/docker/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/subuserlib/classes/exceptions.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | This is a collection of exceptions which are raised throughout the sourcecode.
4 | """
5 |
6 | #external imports
7 | #import ...
8 | #internal imports
9 | #import ..
10 |
11 | class ImageBuildException(Exception):
12 | """
13 | This exception is raised any time an image fails to build and subuser is not at fault.
14 | """
15 | pass
16 |
--------------------------------------------------------------------------------
/subuserlib/classes/permissionsAccepters/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/subuserlib/classes/subuserSubmodules/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/subuserlib/classes/subuserSubmodules/run/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/subuserlib/classes/userOwnedObject.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | All objects in subuser are owned by the C{subuserlib.classes.user.User} object.
5 | """
6 |
7 | #external imports
8 | #import ...
9 | #internal imports
10 | #import ...
11 |
12 | class UserOwnedObject(object):
13 | def __init__(self,user):
14 | self.user = user
15 |
--------------------------------------------------------------------------------
/subuserlib/data/VERSION:
--------------------------------------------------------------------------------
1 | 0.6.2
2 |
--------------------------------------------------------------------------------
/subuserlib/data/repositories.json:
--------------------------------------------------------------------------------
1 | {
2 | "default" : {"git-origin" : "https://github.com/subuser-security/subuser-default-repository.git"}
3 | }
4 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo-full-path/options.texttest:
--------------------------------------------------------------------------------
1 | describe image foo@default
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo-full-path/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo-full-path/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo-full-path/stdout.texttest:
--------------------------------------------------------------------------------
1 | foo@default
2 | To install this image run:
3 | subuser subuser add foo@default
4 |
5 |
6 | Prelude:
7 | - executable: /usr/bin/foo
8 | - entrypoints: 'foo', 'bar'
9 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo/options.texttest:
--------------------------------------------------------------------------------
1 | describe image foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-image-foo/stdout.texttest:
--------------------------------------------------------------------------------
1 | foo@default
2 | To install this image run:
3 | subuser subuser add foo@default
4 |
5 |
6 | Prelude:
7 | - executable: /usr/bin/foo
8 | - entrypoints: 'foo', 'bar'
9 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-subuser-foo/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-subuser-foo/options.texttest:
--------------------------------------------------------------------------------
1 | describe subuser foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-subuser-foo/stderr.texttest:
--------------------------------------------------------------------------------
1 | Subuser foo does not exist.
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Describe-subuser-foo/stdout.texttest:
--------------------------------------------------------------------------------
1 | The following subusers are registered.
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Dryrun-foo/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Dryrun-foo/options.texttest:
--------------------------------------------------------------------------------
1 | run --dry foo
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Dryrun-foo/stderr.texttest:
--------------------------------------------------------------------------------
1 | Subuser foo not found.
2 | Use --help for help.
3 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Dryrun-foo/stdout.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-broken-permissions/Dryrun-foo/stdout.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/List-subusers-long/options.texttest:
--------------------------------------------------------------------------------
1 | list subusers --long
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/List-subusers-long/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-broken-permissions/List-subusers-long/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/List-subusers-long/stdout.texttest:
--------------------------------------------------------------------------------
1 | The following subusers are registered.
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/config.texttest:
--------------------------------------------------------------------------------
1 | executable:/pwd/test/Weird-repositories/With-subuser-foo-having-broken-permissions/run.sh
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/edit-permissions-foo/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/edit-permissions-foo/options.texttest:
--------------------------------------------------------------------------------
1 | subuser edit-permissions foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/edit-permissions-foo/stderr.texttest:
--------------------------------------------------------------------------------
1 | Subuser foo does not exist.
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/edit-permissions-foo/stdout.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-broken-permissions/edit-permissions-foo/stdout.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/remove-foo/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/remove-foo/options.texttest:
--------------------------------------------------------------------------------
1 | subuser remove foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/remove-foo/stderr.texttest:
--------------------------------------------------------------------------------
1 | Subuser foo does not exist.
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/remove-foo/stdout.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-broken-permissions/remove-foo/stdout.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/run-foo/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/run-foo/options.texttest:
--------------------------------------------------------------------------------
1 | run foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/run-foo/stderr.texttest:
--------------------------------------------------------------------------------
1 | Subuser foo not found.
2 | Use --help for help.
3 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/run-foo/stdout.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-broken-permissions/run-foo/stdout.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | /pwd/test/prepare-test-repos.sh
3 | /pwd/logic/subuser subuser --accept add foo broken-permissions-file@file:///$TEXTTEST_SANDBOX/test-repos/remote-test-repo > /dev/null 2> /dev/null
4 | /pwd/logic/subuser $@
5 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-broken-permissions/testsuite.texttest:
--------------------------------------------------------------------------------
1 | run-foo
2 | Describe-image-foo
3 | Describe-image-foo-full-path
4 | Describe-subuser-foo
5 | Dryrun-foo
6 | List-subusers-long
7 | edit-permissions-foo
8 | remove-foo
9 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo-full-path/options.texttest:
--------------------------------------------------------------------------------
1 | describe image foo@default
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo-full-path/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo-full-path/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo-full-path/stdout.texttest:
--------------------------------------------------------------------------------
1 | foo@default
2 | To install this image run:
3 | subuser subuser add foo@default
4 |
5 |
6 | Prelude:
7 | - executable: /usr/bin/foo
8 | - entrypoints: 'foo', 'bar'
9 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo/options.texttest:
--------------------------------------------------------------------------------
1 | describe image foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-image-foo/stdout.texttest:
--------------------------------------------------------------------------------
1 | foo@default
2 | To install this image run:
3 | subuser subuser add foo@default
4 |
5 |
6 | Prelude:
7 | - executable: /usr/bin/foo
8 | - entrypoints: 'foo', 'bar'
9 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-subuser-foo/options.texttest:
--------------------------------------------------------------------------------
1 | describe subuser foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-subuser-foo/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-subuser-foo/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Describe-subuser-foo/stdout.texttest:
--------------------------------------------------------------------------------
1 | The following subusers are registered.
2 | Subuser: foo
3 | ------------------
4 | Warning: This subuser has no image, nor does it have a valid image source to install an image from.
5 | Docker image Id: None
6 | Prelude:
7 | - description: broken-syntax
8 | - maintainer: fred
9 | - executable: /usr/bin/foo
10 |
11 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Dryrun-foo/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Dryrun-foo/options.texttest:
--------------------------------------------------------------------------------
1 | run --dry foo
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Dryrun-foo/stderr.texttest:
--------------------------------------------------------------------------------
1 | There is no installed image for this subuser. Cannot run.
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Dryrun-foo/stdout.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/Dryrun-foo/stdout.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/List-subusers-long/options.texttest:
--------------------------------------------------------------------------------
1 | list subusers --long
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/List-subusers-long/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/List-subusers-long/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/List-subusers-long/stdout.texttest:
--------------------------------------------------------------------------------
1 | The following subusers are registered.
2 | Subuser: foo
3 | ------------------
4 | Warning: This subuser has no image, nor does it have a valid image source to install an image from.
5 | Docker image Id: None
6 | Prelude:
7 | - description: broken-syntax
8 | - maintainer: fred
9 | - executable: /usr/bin/foo
10 |
11 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/config.texttest:
--------------------------------------------------------------------------------
1 | executable:/pwd/test/Weird-repositories/With-subuser-foo-having-no-installed-image/run.sh
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/edit-permissions-foo/options.texttest:
--------------------------------------------------------------------------------
1 | subuser edit-permissions foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/edit-permissions-foo/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/edit-permissions-foo/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/remove-foo/options.texttest:
--------------------------------------------------------------------------------
1 | subuser remove foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/remove-foo/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/remove-foo/stderr.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/run-foo/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/run-foo/options.texttest:
--------------------------------------------------------------------------------
1 | run foo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/run-foo/stderr.texttest:
--------------------------------------------------------------------------------
1 | No runnable image for subuser foo found. Use
2 |
3 | $ subuser repair
4 |
5 | To repair your instalation.
6 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/run-foo/stdout.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/Weird-repositories/With-subuser-foo-having-no-installed-image/run-foo/stdout.texttest
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | /pwd/test/prepare-test-repos.sh
3 | /pwd/logic/subuser subuser --accept add foo broken-syntax@file:///$TEXTTEST_SANDBOX/test-repos/remote-test-repo > /dev/null 2> /dev/null
4 | /pwd/logic/subuser $@
5 |
--------------------------------------------------------------------------------
/test/Weird-repositories/With-subuser-foo-having-no-installed-image/testsuite.texttest:
--------------------------------------------------------------------------------
1 | run-foo
2 | Describe-image-foo
3 | Describe-image-foo-full-path
4 | Describe-subuser-foo
5 | Dryrun-foo
6 | List-subusers-long
7 | edit-permissions-foo
8 | remove-foo
--------------------------------------------------------------------------------
/test/Weird-repositories/add-broken-non-existant-dependency/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/add-broken-non-existant-dependency/options.texttest:
--------------------------------------------------------------------------------
1 | subuser add --accept broken-non-existant-dependency broken-non-existant-dependency@file:///$TEXTTEST_SANDBOX/test-repos/remote-test-repo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/add-broken-permissions-file/options.texttest:
--------------------------------------------------------------------------------
1 | subuser add --accept broken-permissions-file broken-permissions-file@file:///$TEXTTEST_SANDBOX/test-repos/remote-test-repo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/add-broken-permissions-file/stderr.texttest:
--------------------------------------------------------------------------------
1 | Cloning into '/home/timothy/.texttest/tmp/texttest.19Mar162658.1117/texttest/Weird-repositories/add-broken-permissions-file/.subuser/repositories/default'...
2 | Cloning into '/home/timothy/.texttest/tmp/texttest.19Mar162658.1117/texttest/Weird-repositories/add-broken-permissions-file/.subuser/repositories/0'...
3 |
--------------------------------------------------------------------------------
/test/Weird-repositories/add-broken-syntax/exitcode.texttest:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/add-broken-syntax/options.texttest:
--------------------------------------------------------------------------------
1 | subuser add --accept broken-syntax broken-syntax@file:///$TEXTTEST_SANDBOX/test-repos/remote-test-repo
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/image-source-with-spaces/config.texttest:
--------------------------------------------------------------------------------
1 | executable:/pwd/test/Weird-repositories/image-source-with-spaces/run.sh
--------------------------------------------------------------------------------
/test/Weird-repositories/image-source-with-spaces/options.texttest:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/image-source-with-spaces/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | /pwd/test/prepare-test-repos.sh
3 | /pwd/logic/subuser subuser add foo "image source with spaces@$TEXTTEST_SANDBOX/test-repos/local-test-repo-§€č"
4 |
--------------------------------------------------------------------------------
/test/Weird-repositories/image-source-with-spaces/stderr.texttest:
--------------------------------------------------------------------------------
1 | Cloning into '/home/timothy/.texttest/tmp/texttest.19Mar170057.18316/texttest/Weird-repositories/image-source-with-spaces/.subuser/repositories/default'...
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/incorrect-permission-types/options.texttest:
--------------------------------------------------------------------------------
1 | subuser add foo permissions-with-incorrect-types@/$TEXTTEST_SANDBOX/test-repos/local-test-repo-§€č
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/incorrect-permission-types/stderr.texttest:
--------------------------------------------------------------------------------
1 | Cloning into '/home/timothy/.texttest/tmp/texttest.18Feb171335.31928/texttest/Weird-repositories/incorrect-permission-types/.subuser/repositories/default'...
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/subuser-add-€-from-€@local-test-repo-§€č/options.texttest:
--------------------------------------------------------------------------------
1 | subuser add € €@/$TEXTTEST_SANDBOX/test-repos/local-test-repo-§€č
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/subuser-add-€-from-€@local-test-repo-§€č/stderr.texttest:
--------------------------------------------------------------------------------
1 | Cloning into '/home/timothy/.texttest/tmp/texttest.19Mar162658.1117/texttest/Weird-repositories/subuser-add-€-from-€@local-test-repo-§€č/.subuser/repositories/default'...
2 |
--------------------------------------------------------------------------------
/test/Weird-repositories/testsuite.texttest:
--------------------------------------------------------------------------------
1 | # Copy of add-broken-syntax
2 | add-broken-permissions-file
3 |
4 | # Copy of add-broken-syntax
5 | add-broken-non-existant-dependency
6 | add-broken-syntax
7 | subuser-add-€-from-€@local-test-repo-§€č
8 | image-source-with-spaces
9 | incorrect-permission-types
10 | With-subuser-foo-having-broken-permissions
11 | With-subuser-foo-having-no-installed-image
12 |
--------------------------------------------------------------------------------
/test/base-executable/--help/options.texttest:
--------------------------------------------------------------------------------
1 | --help
2 |
--------------------------------------------------------------------------------
/test/base-executable/--help/stderr.texttest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/subuser-security/subuser/b03fdd62631aaaadc3a1b4e66473fba7410e65a8/test/base-executable/--help/stderr.texttest
--------------------------------------------------------------------------------
/test/base-executable/--help/stdout.texttest:
--------------------------------------------------------------------------------
1 | You can use one of the following commands:
2 | run
3 | repair
4 | update
5 | subuser
6 | remove-old-images
7 | pkg
8 | dev
9 | print-dependency-info
10 | repository
11 | version
12 | ps
13 | registry
14 | list
15 | describe
16 | for more info about each option use: subuser