Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Feb 21:40
· 43 commits to main since this release

Changelog

  • 8b33429 a nice upgrade with all the new features that I refactored and rewrote over the last months
  • 6eb82c2 - allow pushing - add way to list all hooks - add way to remove all scripts from a single hook
  • aafbac5 - fix the create network functionality - refactor the docker functions into a separate file - fix the problem where network-name option has to be at the beginning of the options
  • 2d30ecb A little reformatting
  • 3e30b8c Add Homebrew tap and install script for distribution
  • 4ffc100 Add an automatic self updater with a timeout feature
  • 0b1bc46 Add extra information about the configured upstreams to the status command
  • 26d6cdc Add interactive logs dashboard and improve status display
  • 289c3dc Add live Status tab to logs dashboard and improve status display
  • 1c119ba Add sidecar display to status dashboard
  • 2654c49 Add start/stop commands for DNS and proxy services
  • 157cae1 Allow to install without specifying a path, it'll use the path of the tool that being run, making it somewhat autoconfigurable
  • 0c11402 Big documentation update
  • b0777e2 Change some core function names to be more consistent and less likely to clash with tool functionalities
  • 52a62c0 Create a way to render a table of data with borders
  • 5c7a19e Don't attempt to upload when the $file variable is empty
  • bb2977c Don't update when running the setup tool
  • d698974 Eliminating the Script object in favour of always using the CLI object
  • d2e522e Fix GoReleaser deprecations: formats and homebrew_casks
  • 5bf7ec9 Fix how the shell path files are backed up to stop them making unlimited copies
  • 79f7d61 Fix lowercase string tools name
  • 22a6242 Fix the constructors to use the new SystemConfig class
  • 7435f8d Handle fatal errors in a nicer way than the default output
  • fe0f3e6 I didn't use the correct methods
  • 6173eb1 I don't want to output tabs, so replace all usages with an automatic replacement
  • 81e0fc7 I forgot to commit these two files
  • a96bb64 I forgot to update some variables so this command was briefly broken
  • 6e07a78 I had the follow parameter the wrong way around
  • e618398 I hate this code, but I have to maintain it until I rewrite it
  • d42d97f I need to remove the first argument, after it's confirmed that it's a valid command
  • 303cb15 I needed the ability to temporarily silence stdout whilst another process was in action so it wouldn't confuse the command line output
  • 4c72f0e I should have also changed this interface
  • 6ea3be5 I should not have exposed this information through the public interface, since I don't know how to implement this feature on linux too and that causes a crash
  • e8fde0c I updated these configuration keys to be more obvious
  • c73cbce I was incorrected detecting true, not false
  • 3893819 I was using the wrong way to add text to a config file
  • 8cfbf40 If the config is readonly, don't do any self-update since it can't work in readonly mode
  • 29b3758 Implement a more generic way for tools to registry themselves, letting me use tools from extensions for the first time
  • 911d3b4 Implement a way to directly read json data into models instead of dealing with arrays and use it extensively in the project models
  • d1c06d0 Implement extension install/uninstall
  • 4907e1c Implement the linux networking
  • f60bee2 Initial commit
  • 6feba69 Install the install, proxy, and network commands
  • 70a9a6d It makes more sense to namespace these
  • 5fcf32b Make a change that will use your current network ip addresses and respect that setup instead of overriding it with 1&1 servers
  • d2f4a7b Make the container use an instantiator callable to make objects and tell the autowirer to use the containers resolver when doing dependency resolution, lol
  • 4ef6e26 Make this exception a little more flexible on how it describes the exception so i can use it with more scenarios
  • a8f9d8e Merge branch 'cth/chris-master' into master
  • 4558063 Merge branch 'cth/project-refactoring'
  • 2c399e4 Merge branch 'main' of github.com:antimatter-studios/docker-dev-tools
  • 9f3e9bd Merge branch 'main' of github.com:antimatter-studios/docker-dev-tools
  • 79e1c12 Merge branch 'main' of github.com:antimatter-studios/docker-dev-tools
  • 5f67e98 Merge branch 'main' of github.com:antimatter-studios/docker-dev-tools into main
  • 47caee3 Merge branch 'master' into cth/ubuntu
  • 16a1d5d Merge branch 'master' into cth/upgrade-project
  • ffdfc4a Merge branch 'master' of https://github.com/christhomas/docker-dev-tools
  • 7760b3d Merge branch 'master' of https://github.com/christhomas/docker-dev-tools into master
  • 0c3d60b Merge branch 'master' of https://github.com/plista/docker-dev-tools into upgrade
  • d9012dc Merge branch 'upgrade' of github.com:christhomas/docker-dev-tools into upgrade
  • 2b90d40 Merge pull request #1 from christhomas/master
  • bcad5f2 Merge pull request #1 from plista/master
  • 1d1e1d1 Merge pull request #1 from thamerbelfkihthamer/main
  • 3ac2ce6 Merge pull request #2 from christhomas/master
  • 9d75972 Merge pull request #2 from plista/master
  • 473f90a Merge pull request #3 from christhomas/master
  • face7c3 Merge pull request #3 from plista/master
  • 0e58fd9 Merge pull request #4 from christhomas/master
  • 15876a9 Merge pull request #4 from plista/master
  • 559bc85 Merge pull request #5 from christhomas/master
  • 402bc0e Merge pull request #5 from plista/master
  • 8298844 Prevent overwriting the $group variable with another variable for this loop
  • ccb2925 Refactor things towards the new Text/Table classes which are instance based
  • cfff7e5 Refactor this code to eliminate the reflection from methods which don't need it and put it together with other reflection that will make debugging and testing this code easier
  • 57c483a Rename BaseConfig to JsonConfig because it's actually a more descriptive name
  • d35f2c4 Rename logs subcommand to monitor
  • 9f2db01 Replace the output with a nice table
  • ffb1222 Split the configuration up into different classes to help with loading multiple configuration types from multiple data sources
  • 338ecd8 Support "sequences" of commands, where you can set a script to be an array of commands to run, useful for things like "restart" actions
  • 241303e The big namespace refactoring
  • 69c01ac Update this code to use DockerServer instead of Docker
  • c94daf5 Use ~/.local/bin for install script with PATH warning
  • 0522be7 You shouldn't pull the container, but just use the one you have in your machine
  • 9e2b1f6 a dummy healthcheck tool
  • a353efd a pretty cheap way to handle dealing with setting keys of non-scalar values and stripping them of objects by decomposing them to plain json objects and back again
  • 18a580e a rewrite of the terminal code so it's functioning with "streams" instead of just outputting text raw to the terminal
  • 75d9a8b a simple config() function and use realpath to resolve the path from being relative
  • bc1769d a simpler and more powerful run script logic
  • 513e344 actually, the autoloader can't throw exceptions, but must just return false
  • 821103a add 127.0.0.1 to this since on big sur 0.0.0.0 has stopped working like it did before
  • 7c62c1a add a --config option which dumps the nginx config to the terminal
  • fcc3654 add a basic method for using scripts which are installed into each project (this actually works too)
  • 2ddaad1 add a better way to print debugging information
  • 6bfc4f1 add a box output method to the cli
  • cfc1141 add a callback for instantiating objects, it's used by the container
  • 740bf68 add a clone-project command and split away this functionality from add-project
  • 5d97c58 add a composer tool which runs composer inside a container with option for a docker volume to cache composer local caching
  • c031c85 add a config object to handle the proxy config
  • 2fda02c add a default value to the key if it was not provided
  • bddf231 add a dummy linux DnsService class to catch all other types of linux
  • da9807e add a function for outputting debug information in a potentially useless way
  • 640f752 add a function to invoke a method through the autowire handler
  • 97ddb14 add a method to get the complete tool entrypoint instead of always having to manually build it
  • 73113bf add a method to obtain the container which was not found
  • c1b1954 add a namespace for DDT\Test
  • bc74e46 add a new tool which can git pull all projects in the main project directory, makes updating lots of projects easier
  • 01f85ef add a nicer way to acquire the groups as a csv string rather than letting everybody write their own logic for every situation
  • 92a4aa3 add a package configuration for extension files (initial code)
  • 94919ba add a passthru command to the container object
  • 4297b8f add a php version check to ensure at least 7.2 is being used
  • 583d488 add a run function here, because I'm migrating from allowing docker to run arbitrary containers
  • 9b3e290 add a shorthand syntax for dependency scripts to just provide an array of strings to enable as true instead of mandating an object key/value map of each script
  • d410201 add a simple function to check has the group or not
  • caf72f9 add a terraform wrapper tool
  • 08e0247 add a time helper to output nicely formatted time for how long the self updater will timeout
  • 5de3e5d add a way to change a project type
  • c27ba87 add a way to find a container name by a set of filters
  • 4730545 add a way to fliter the run script list by group
  • 22738d1 add a way to manipulate the resolv.conf file directly
  • 37f2a06 add a way to match an input string against the type of exception
  • 81df052 add a way to obtain the dependencies from a project config
  • f31575c add a way to run containers with labels and retrieve them afterwards
  • a4e734c add a way to run the proxy alongside the docker-config-gen project, which is now the new setup of how it generates it's config files
  • ed915c5 add a way to show the status of the proxy and all its configured containers and relevent data
  • 305daa7 add a way to tag debugging information with a counter to show which output belongs to which exec statement if they happen to be nested
  • 5a60822 add an address object, which can take care of resolving addresses and extracting information about them during a ping
  • 2793fc7 add an array collection interface and implementation, I want to use it to replace the older IteratorIterator pattern that I didn't like so much with it
  • 46d07da add an autowiring di container to help with object construction
  • 7b52b43 add an example of what the projects structure should look like when upgraded to v3 so I can continue to work on this later
  • 4dccb8f add an exception when the tool can't be decoded from the input string
  • 725f172 add an object to manage docker volumes
  • dd17a02 add better error output so it's easier to know what to do when things fail
  • 06fcb97 add better filtering functionality
  • d4f6964 add code to detect and return whether to skip dependencies or not
  • 3f477b6 add debugging cause I've realised that this code can sometimes be buggy
  • 466b239 add debugging when a situation arises you can't handle in the autowirer
  • dc7ce6a add dns loop detection because on linux this does result in an infinite loop because of the way that systemd-resolved works
  • ba1ce6d add documentation for a confusing error that I found recently
  • 84cdf42 add explanations for how to manage projects
  • e0b3f6b add extra methods to pull interesting information out of a container
  • c15a959 add functionality that will be useful for providing better feedback to the user
  • 002dc32 add functions that would be useful for the project sync process
  • fe3fa0e add methods to interact with the docker run profile configurations
  • ae67a05 add methods to list paths and groups
  • b3653b5 add more nginx proxy parameters to increase timeouts
  • e0c174a add more tests
  • 48fc7a2 add new git exceptions
  • dfdd8b6 add option to reenable the server easily
  • f8f6f55 add output when things fail
  • 5b4bb94 add php types
  • 490bf1e add pings to the dns stop command
  • 71a6368 add progress feedback to dns status tool
  • f005ae1 add shortcut for obtaining the system configuration explanation
  • 7697e85 add shortcuts for start/stop/restart-dns to just be start/stop/restart, since it makes a bit of sense and it's nicer to type :)
  • 64a6fe0 add some exceptions to handle docker specfic conditions
  • 39713bf add some nice progress output
  • 55717de add some support for ubuntu 18
  • f6fbe95 add something to stop previous commands which use shell terminal colours from bleeding over into this new command
  • 99a59de add strict types
  • b3fef05 add support for coercing strings into numbers correctly
  • 73c6ae7 add support for the new dns and ip services and interfaces
  • c70f476 add tests for ProjectPathListModel
  • a56a8de add the ability to add a remove projects from the known configuration
  • c78acd9 add the ability to add volumes on demand
  • ad048c7 add the ability to copy a file into a container
  • a435c06 add the ability to get a git repository model from the project model
  • a65f914 add the ability to get the remote url
  • 595bb81 add the ability to import and import-scan existing projects into the configuration
  • ff3fae3 add the ability to reload the nginx configuration
  • a1277d2 add the ability to sighup containers
  • bd0f859 add the ability to update the networks the proxy is working on using a cmd line option
  • 24c683a add the basic code needed to run a script from a project
  • 8d037df add the basic extension tool
  • 441c3cb add the extension folder
  • 0423146 add the hook and project manager code
  • 02a30ba add the linux install docker script, this should take your system up to the newest version of docker
  • 6f41521 add the name of the extension to the error output
  • 7049e57 add the php-composer wrapper
  • 4bca51c add the tools path to the container config values, I think this should replace what I did with the config.paths.tools, which turned out to be a mistake
  • 69de55d add these classes to handle reading external project configurations
  • b26c4a8 add these modifications to the entrypoint package cause it needs to return the test to run after installation
  • 94c653b add these new configuration objects to take care of dns and ip config data
  • b296421 add these useful methods to list projects by various filters
  • 9937e08 add this annotation to prevent warnings for php 7.3
  • 26f6dc4 add this exception, which mimics a comment on lower versions of php
  • f6b0dcc add this missing exception
  • b63c8f9 add titles to these scripts
  • fc37388 add tty functionality to the docker exec so it can act like opening a terminal
  • 6a7a80e add varDump, why not :)
  • 78ff3ab addDomain and removeDomain functionality
  • a624f72 addDomain and removeDomain functionality
  • 7421fde added this exception to be a bit more structured
  • 3892f09 added to support handling of docker networks
  • 79c0429 adding individual projects can only be done on the project list, since paths are a grouping construct which can't follow the same pattern
  • c6526e0 adjust namespaces
  • c8c1a6f adjust the text to meet the output
  • 587cb8c adjusted how the inspect function accepts filters, made them mandatory now cause really, I was always filtering and there was never a case where I wasn't
  • 112fa88 all latest changes
  • 7b2271a allow Address objects to be cast to strings, which renders them, gets rid of the ugly ui/Ping object
  • 7f7b1ac allow a common way for scripts to know what architecture they are running on
  • 76f2dae allow a double-dash command to act like an option but really is a command, this is useful when having default commands which cause the command line processor to confuse a parameter with a command
  • b364981 allow a filename and readonly status to be given
  • ae186ee allow a parameter --pull
  • ab0be5f allow a reason to be output with this exception
  • e5b327a allow a way to easily set what kind of information should be output to the console when debugging
  • d1b8d2c allow a way to force an update now if you want
  • 77b1379 allow a way to view the raw config files for dnsmasq
  • 59ed1cd allow an easy way to test whether debugging is enabled
  • df70ad4 allow arguments to be removed by name when they are found
  • e331617 allow command lines to parameterise their command lines somehow
  • 4a94ce8 allow configuration files to be marked readonly and throw exceptions when trying to write to them
  • e214abb allow container logs to be read easily
  • 520da7b allow delete to be silent
  • c3609d4 allow dependencies to start an array of services instead of just one
  • ba7bd34 allow empty/null renderer and column mapping so you can know which column is being processed (would allow callbacks to be more intelligent if they knew what field they are rendering)
  • b88bbaa allow extra command line parameters to be inserted into the exec/passthru statements
  • c73488f allow filtering by --project=something
  • 4b8c068 allow function to return null
  • 103e718 allow getting the creds without calling exit, but in the cli tool use exit to reply back the exit code for failures, etc
  • 963f79f allow keys to be more symmetric by starting with .key
  • a65d735 allow linux to det
  • 32e8cf4 allow manipulating the domains in the dns config
  • 8f219e3 allow old tools and new tools to work side by side for now
  • 19bce95 allow project listing to be filtered by name and group
  • d323775 allow projects to be returned by path or those that are installed individually
  • 840f98a allow proxy service and config gen service to pull their docker images if needed
  • 7901986 allow pull on starting the proxy
  • 80fbc16 allow retrieving the name of the configuration file if present
  • 3dd0507 allow run --list --script=start type filtering
  • aae04b7 allow simple ways to know the operating system name
  • 18355cb allow sudo to take a custom command and allow sudo to be bypassed when you're root
  • 93a5f1a allow support for the __call interface in the autowiring as a fallback option
  • 20ed74f allow the add-project to clone repositories when it doesn't find the project installed where it needs to be and a repo url is given
  • c6feeab allow the cli to return the exit code in a more standardised way
  • baa8bd9 allow the configuration to set a device to use for the dns, this might be a mac only command
  • 6108d39 allow the container debugging to be turned on or off using the --debug=container flag
  • 7b2cfc4 allow the container to instantiate classes or delegate to an external callable (this suits the case for the Autowire class, without directly linking the two classes together)
  • ac6dd30 allow the display of sequences of commands and a little table footnote to explain it
  • 7349f8e allow the dns upstreams to be configured or default to better linux settings
  • be6ff77 allow the docker object to return what exit code docker exec commands returned
  • bc1e8cc allow the extraArgs param to be null, resulting in a no-op
  • 458ec77 allow the filename to be updated when writing a new SystemConfig to a new file
  • 960d026 allow the group parameter to be null, it'll default to empty group array
  • 0750091 allow the logs functionality to support a --since parameter
  • 493e94f allow the network name for the containers to be customised from the command line
  • db5546a allow the project path to be omitted because it can just use the current working directory
  • 4b18073 allow the proxy to output the names of the networks it's listening on
  • 17163aa allow the proxy tool to output the networks when using --domains
  • 1a201b6 allow the rendering of arrays and objects, but with some caveats but callback functionality which lets the user decide how to render the data
  • 2e7b27e allow the return of the foreground containers exit code
  • de4be1e allow the run tool to support passing command line arguments to each script it runs
  • fb85f59 allow the silence channel method to return from the callback information that might be useful
  • 926907c allow these configurations to be constructed by path name, hiding more internal details which were previously exposed publicly
  • 2ea766c allow this project variable to be used from the exception object
  • f2e42fa allow to find out whether the configuration is readonly or not
  • 0d4c4cc allow to list projects by the script
  • 68759e0 allow token replacements in the common errors
  • 590c9d8 allow tool methods to use named arguments, reduces boilerplate code
  • e9ac6c8 allow ways to update the tools and projects location, also add help to this tool
  • 265d618 allow writing to the stderr directory and change the name of the channels write method to process to stop it from being confusing when you write to it and nothing happens
  • 6c936fe always add a newline at the end of the text
  • 98502ad always return an array
  • e8588af amend the passthru function
  • 3f3dee9 avoid problems with using this class statically in any context, even tests where the container() function is not available
  • 9d48de3 base upon an interface to make polymorphism work
  • 9880f67 basic manipulation of the arg list
  • dc057d2 because of changes to the project configuration, there were changes to the run tool to match the new config layout
  • 8debd3b because of the changes to the entrypoint, I had to rearrange some of the exceptions handling and things
  • b865fa4 better debugging
  • 14f5a3f better to use the message from the exception, it has more detailed information about the failure
  • ca94e4a big migration from the old tools to the new ones
  • abe91a2 big update to the channel system so it's much more dynamic, although a bit chaotic right now, needs to be refactored again soon
  • 4fa6ed5 block double execution of the updater if automatic update starts, we should stop the manual one
  • da682cb both the enable and disable should take the ip address in order to remove it properly afterwards
  • b8b7c6c break reference after use
  • ea32c91 build a way to upgrade the configuration, starting with projects-v2
  • 1763112 catch DockerInspectException and throw DockerNetworkNotExistException
  • 210de2a catch and append extra information to these exceptions so they can be more intelligently used
  • f9b7d00 catch and rethrow a more specific exception
  • ae5ee52 change $dir to $path
  • 67a36e4 change --dir into --path and fix a relative path bug
  • d3faa9a change --dir to --path
  • 7e07208 change ListModel2 to ListModel to completely replace the old implementation
  • 6090db1 change PathConfig to ShellPath, because it makes more sense with the method names
  • 6645ac8 change SyncProfile to the more accurately named DockerSyncProfile since it was a little bit confusing against the ProjectSync object
  • 0657ead change all docker exceptions to base against DockerException instead of staight onto Exception, makes them easier to identify
  • 21ebb4d change ddt-shell-path to ddt-setup and fix up ddt-upgrade to reflect those changes
  • 63dd744 change from using Npm to Node in the package config and project type
  • 233cf7f change from using exec to proc_open, since I can access all the pipes correctly
  • ba18e07 change how the Git object works to make it more usable in more scenarios that will come soon
  • 75aa739 change how the tool objects are created because of an issue Thamer found constructing the class names was in a case-sensitive manner
  • c4ae1b6 change how to get and start a container, so when getting status, we don't automatically start a new container, which is broken behaviour
  • ea78926 change the DockerNetwork::instance default of create=true to false, it's safer
  • db4fd79 change the container to using it's own output channel instead of dumping everything into the debug channel
  • 168b972 change the docker object to only detect if it's running when trying to run a docker command
  • 1712d46 change the exec() call to not have those extra parameters and just return a multiline string instead
  • 29104e0 change the log methods
  • 2f8b170 change the method to be toCommandLine, it's more obvious about that it does
  • 4da2c5b change the namespace of the Text class
  • 7e2ef9b change the namespace of this exception
  • 0148487 change the namespace of two service classes
  • 5c99eb1 change the path configuration key to be an object that supports other types of paths too
  • 8bd3c7d change these functions to return true if the exit code is zero, moved the config stuff out to the tool layer
  • 5359967 change this method name to something a bit more normal
  • babe3c0 change this objects name
  • f81d977 change this to dev-debug cause it is quite intense kind of output only really useful for developers
  • e0af11c change this to listNetworks
  • c6ab680 change to use config() instead of container('config.xxx')
  • d3d4a5d change to use the new docker exec/passthru methods, since it was determined that the docker object should remain low level and the other docker objects can provide the customised functionality on a scope level
  • 72dbbd4 change to using ProjectGroupModel instead of a raw string, and assorted cleanups
  • 68cb0b5 change to using autowiring
  • 9cd5584 change to using autowiring
  • a932f32 change variable names to simplify and use the getConfig method
  • 1911b54 changed this method name
  • 96ed8fe check dependent script data is an array before attemping to use it as one
  • 747ff87 cleanup of unused things
  • 21b372b cleanup old shell garbage code, we don't need it anymore
  • 532e158 cleanup some internal logic details and hide them inside the project service and model instead of exposing them in the run tool
  • b75f9df cleanup the --version command, I realised that actually, I don't want the entrypoint to have tool commands after all, it makes everything messy
  • e5d3757 commit a change to allow the user to safely include TLS certs into the project so it can auto-include them
  • d2aeea6 commit latest changes to branch
  • cbe6cca containers don't always work with port 80, this supports testing any number of ports whether they are mapping and setup correctly
  • 34361b6 cope with non-existent git repositories
  • a5bfd66 correct this docker container name
  • cd1fd01 correctly filter based on information passed to the function
  • 62c14bb correctly filter the projects by script and change the return type to the ProjectListModel
  • 6779cee correctly remove projects from the configuration
  • c8b309c create a ToolException parent class and move all other Tool exceptions under it and then use it to catch the instances where the exception is thrown and handle it more gracefully
  • aa6e6ee create a basic tool for adding project groups and projects themselves to your configuration
  • cbc476d create a better way to way to render formatted elements of text
  • 0808ea4 create a docker image object to be able to build docker images programatically
  • fc4fe69 create a function to resetUpstreams when dns is refreshed and also started
  • a3350e9 create a git service for interacting with a projects git repository
  • fac966a create a new aws command and refactor the aws-creds to use it
  • b600729 create a way to filter out unwanted information from the terminal
  • f3df8a4 create the first version of the project service
  • 0b69ee0 customise error message when project exists already
  • eb2ff61 customise the exception for docker being missing or not
  • 88d0852 delete all these distro specific objects because they are defunct now
  • fa53d29 delete this old file
  • e379988 deprecate this class
  • 300950b detect and show errors in project list
  • 2c8aeed doc update
  • 773d8d0 doc update
  • 105da5b doc update
  • 9d42fac doc update
  • 5d09504 doc update
  • 196e2e9 doc updates
  • 59006f1 docs update
  • 3b220c4 document a function which most likely will fail if an attempt to use a git repository does not exist
  • be98eb7 document a potential problem
  • a71e9e0 document how this function should work
  • 0fab641 document something I don't like
  • 4902936 document the table class better
  • 6b8ad89 document this, I don't know why it's written this way
  • a5c4f60 documentation updates
  • 88e4de2 documentation updates
  • 9c361f7 documentation updates
  • fa82850 documentation updates
  • ab2e5e4 documentation updates
  • 9eabbee documentation updates
  • 751f434 documentation updates and a customised exception
  • a8e0f81 documenting this function
  • e08c67f don't allow projects to be added if they aren't a supported type
  • de6f5c3 don't allow set entire list in one step, also fix how to properly add/remove ip addresses with domains
  • ae298ad don't blindly use an array key you don't know exists
  • f7be677 don't cast to string, but instead use the objects to obtain the information
  • 4fbd641 don't handle exceptions at this level in the code, let the tool handle them
  • b64eb6b don't let the stop command crash out, handle it gracefully
  • 78a9d35 don't set type anymore
  • df084d2 don't test for docker executable until you try to use it
  • 31b886c don't throw exceptions during distrodetection since it makes doing all the detection ugly and filled with silly try catch stuff
  • 68b5172 don't throw exceptions when stopping, handle it, show an error and carry on
  • 2e9f1bc don't throw exceptions when you can't find a network, just act like it has no containers
  • 169998b don't try to get the id of a foreground container
  • a730b32 don't use die directly
  • e1bcf36 don't use docker volumes that aren't necessary, instead just copy the files into the container using docker cp
  • 567a0b7 don't use invoke here, it's not useful
  • f76818d don't use project model as array
  • 0b5daf1 don't use project model as array and add exceptions when a project can't be found
  • aa1b546 don't use success/failure here as it stops execution, meaning the tool can't be used in another tool as a utility
  • 7a554b2 dont need this anymore
  • 70da3a4 eliminate all the debugging code from developing the new script dependency feature
  • a4f6178 eliminated all the docker static methods
  • 24b5bbb ellipsis doesn't work in php 7.3 :(
  • 162e8d3 enable a channel based approach to outputting to the terminal
  • a299eac enable attaching to an existing docker network
  • 2d5d37e enable most of the functionality for the dns tool
  • 87a9499 enable the ability to skip dependencies or not
  • 40c3e89 enable xdebug on phpunit tests
  • 5aba39e enforce cli->ask when it demands only acceptable answers and throw exception otherwise
  • ad7e29e enhance this class to properly display all the information that it has instead of just some of it
  • a695ef1 ensure that this will return an empty array instead of null
  • 0ad31d0 ensure this model always contains an array of groups, therefore it's simpler to deal with and understand
  • 578b28d even though this tool should be deprecated/refactored, I upgraded it's namespace functionality to use the new code
  • cb76e32 exceptions for autowiring failures
  • d99ae13 explode can't accept null as a second parameter anymore
  • 86f0aa1 fix a bug using the correct filename
  • 7e363fd fix a bug using the wrong variable name
  • 0195061 fix a bug where I was outputting everything to the stderr, even the normal printed output
  • e998b3a fix a bug where a multi-part option would not be matched or reformatted correctly, so it wouldn't autowire correctly
  • 5d3fa84 fix a bug where if the path ends with /, it won't be able to test successfully
  • c5d647d fix a bug where if the table was empty, it'd throw errors from dealing with strings and not arrays, so the solution was to add an empty "no-op" array, therefore always making sure there is at least two rows (including the table headers)
  • 2f5d88e fix a bug where if you call addUpstream multiple times, it will create multiple lines with the same data in it
  • 4ca4190 fix a bug where isOptional is a function and add the ability to resolve interfaces to class implementations and instantiate them
  • d9ff032 fix a bug where it was imploding with a string instead of an array
  • 36081f4 fix a bug where it was mangling input data for anonymous args
  • 6e4e88b fix a bug where it was not properly detecting the response from the handler and sending invalid data to the print command
  • 46e656f fix a bug where it was passing in parameters that are not used anymore
  • de9d86c fix a bug where it would attempt to use an array index that doesn't exist
  • 5a8e08a fix a bug where it would throw an exception but that would mean all tools would need to catch and handle it, better dying directly
  • 8e0ae53 fix a bug where passthru output was being output buffered, making it practically useless
  • 169a213 fix a bug where setFilename could fix broken filenames but anything it fixed was ignored subsequently
  • 96677cb fix a bug where the domains would not show correctly because the string needs trimming first
  • 3bef996 fix a bug where the filter was wrong and caused the proxy command to fail
  • 9f6d47c fix a bug where the wrong variable was used
  • dc7f9d3 fix a bug where values used in a loop were being incorrectly overridden causing other services afterwards to not run correctly
  • 044b7c2 fix a bug working with the project group model
  • ec88996 fix a mistake where the wrong method was used, causing infinite loop
  • a856dd4 fix a problem calling depedencies because it was getting the project and group parameters mixed up
  • c3bc31c fix a problem when tools return null, they cause an exception
  • 6732092 fix a problem where if the file doesnt exist, it won't crash because of trying to call is_file with a boolean
  • d176e21 fix a problem with the getToolsPath method
  • 794f33d fix a problem writing the tools path, it should be double quotes
  • 3dbf2c3 fix a small issue ben reported where if you don't supply an arguments, it appears to show you an error message when no error has occurred. Thanks!
  • 033444a fix a spelling mistake
  • da414b4 fix a typo
  • 91b0734 fix a typo
  • 540e352 fix a wrong class name for exception
  • b641e6b fix add-group, remove-group write the correct json key
  • 118497d fix adding an newline after all output
  • 7ab6f1e fix an edge case in starting the dns container when it won't have internet
  • fd0aa08 fix an issue where it was not correctly reformatting certain array keys
  • 73bd803 fix an oops with the wrong object being used
  • 02939dc fix another php 7 issue with elipsis
  • 9ffdb02 fix bugs trying to run scripts with certain parameter combinations
  • 0f2024f fix debugging when the default is not a scalar value
  • 2797c27 fix disabling the dns on mac
  • 7766995 fix documentation
  • 6b2332b fix errors because now exec returns a string instead of an array, so things had to rearrange slightly
  • e3a2ede fix how the projects are added and removed individually from the configuration
  • 4443460 fix how to get, set, delete keys in the config
  • 73296d0 fix namespace
  • 3b45a04 fix namespaces
  • a444d1a fix some small errors in the proxy and dns code after the last changes
  • 7d21162 fix spelling mistake
  • c440946 fix tests
  • c3c56fe fix tests
  • 9168545 fix the exception handling
  • 4af3956 fix the extension tool to allow easy reinstallation
  • 1913568 fix the help output
  • a6b3178 fix the passthru debugging output not outputting the command
  • 4e32bb1 fix the problem where if you kill the docker dns server, your computer can't resolve dns anymore by appending the router dns entries to the end of the system dns list, meaning it'll fallback to them when the docker one isn't available
  • 54104c4 fix the proxy tool able to attach to existing networks
  • 3cf4d3e fix the use of the Table class
  • 0d0cd1e fix the wrong colour code being used here
  • dd1c594 fix the wrong quotes used in an exception message
  • 0be9cba fix these two methods in the constructor to call the right method
  • c509dc4 fix this file to have the right file content, it previously was committed with some temporary debugging data in it
  • 12d1137 fix this incorrect class name
  • 3a91946 fix this parameter which was incorrect
  • 4bc4799 fix up and improve the shell executor
  • f50ad8c fix up how the object is used with new methods (I don't like using IteratorIterator)
  • 2328df3 fix up installing extensions
  • ddcc4b9 fix up some namespace issues and how to construct the systemconfig object
  • 8cd0f42 fix up that the group can now be empty and we need to adjust some parameter orders to make it easier to work with
  • 618552b fix up the event loop for retrieving exec output
  • c7ff4c8 fix up the functionality in this class so config works as expected
  • d6820c7 fix up the proxy status output so it correctly displays the information from the proxy configuration
  • 1cd90be fix usage of container->exec as it now returns an array instead of a string like beforehand
  • 8931182 fix usage of container->exec because now returns an array instead of a string
  • 570401a fix using elipsis to using array merge to support php7
  • 473c1b0 fix when the type is not hinting, it won't attempt to convert it
  • 87e4f93 for some reason two newlines are here instead of one
  • e018868 forgot these two files
  • d765fb6 forgot to add this property to the class
  • 6826bb0 forgot to add this to the last commit
  • 9e8f517 forgot to add this to the previous commit
  • eb40496 forgot to change this function name
  • ef67288 forgot to use the namespace for the volume object
  • 1196d9c forgotten changes
  • 7677e7a forgotten exceptions from a previous commit
  • ed40f0d formatting
  • 51791df found a place I was still using the old array object instead of the new project model
  • 9746ee2 get a docker networks name
  • 37663c2 get rid of the obvious template code into a template class instead of just implementing it inline
  • 520fc2d get rid of these unnecessary codes
  • 9e250a3 get rid of this useless file
  • 79ac178 gitignore .DS_Store
  • 27612cc give the option for not-caching the docker build
  • 0406c25 go back to requiring the path, if there is no system config, it'll default to the one in the project folder, which will not be correct and it'll break
  • 84665a3 gracefully handle autowiring problems
  • c1e86a2 handle better when the container is not running
  • 820ef01 handle missing command parameters more gracefully by outputting help the user can see rather than just a mindless exception which is really rough
  • e59626a handle project configuration upgrade exceptions more gracefully
  • 2b71e66 help the construction of table objects
  • 26714bd if composer.json and package.json are both detected, default to composer type
  • 0ea6bdc if docker inspect doesn't return exit code 0, consider this a failure and throw exception
  • 214e176 if double-dash is found in the command line, stop processing anonymous arguments and drop out, double-dash is a special bash command line escape sequence
  • 45a7067 if inspecting a container returns an empty result, it should only default if the result is not a valid array, which is ok to return, it means there was no results to the query
  • 6999cd8 if the proxy is already running, don't run it again
  • 6283b21 if you have no projects setup, it'll crash, this small change means it'll show no projects instead
  • c465f42 if you try to restart a dead container, make it so it restarts it
  • 62e846e implement Docker as DockerService, a singleton service instead of creating instances of the same thing which does the same thing no matter if you create 1 or 100 of them, better performance
  • 9192da6 implement a --skip-update flag for situations where you have no internet
  • a316807 implement a better status command
  • ab6efd1 implement a better way to detect the cpu platform
  • e041c07 implement a cleaner way to enable debugging
  • cb20740 implement a constructor to ensure the configuration is correct
  • e4b8db3 implement a proper contract and abstract class instead of just using standard project as a base class, which is not very pure oop of me :)
  • c93757e implement a slightly better way to run commands, starting with named commands and default commands when nothing was found, rather than the other way around
  • 55f38fc implement a way (unused right now) to customise the colour palette
  • 4c0c7b7 implement a way to auto-detect the project type based off what files are inside the project
  • 96f6304 implement a way to delete a docker volume
  • 813a094 implement a way to stop and delete a container
  • 8e0b544 implement a way to update and list extensions
  • 5696c0f implement a way to upgrade to config version 3
  • a660ae6 implement a way to use the default.ddt-system.json file as a way to get defaults, I want to replace all the bootstrap defaults with this method
  • fad357f implement a working setup tool
  • 4ae0eeb implement commands in the docker tool to use you interact with the Docker Run Profiles
  • 9e567e5 implement debug and quiet as default arguments and update the docker sync project to use this --quiet parameter for it's watch command
  • 72d2200 implement exceptions for docker configuration data problems
  • e1c6979 implement multiple command line tool wrappers for different linux distributions
  • e26c956 implement some static functions to wrap up and hide the complexity of interacting with the di-container
  • 03de215 implement support for ubuntu 16.04
  • a109aad implement support for ubuntu 16.10 and update 18.04
  • 31b3862 implement the dependency aware script runner :)
  • 7c17c6d implement the extension list as a table, much nicer!
  • 35590c2 implode any arrays I find when processing the help
  • 96b04b1 implode the options array
  • f9d2f61 improve debugging output
  • 7393f63 improve docs
  • 5d3cd60 improve how the entrypoint communicates a command is not found
  • 65b0df3 improve how the git handler tackles checking if a repository url exists or not
  • 6dd92bd improve linux detection
  • 423a888 improve the base tool class so it can abstract how to respond to tool output and how to customise how to react when the default tool action is called
  • 66d6090 improve the config upgrade logic to be more universal
  • 0dada80 improve the error output when the port is already used by something
  • 50a5da2 improve the functionality of this and fix the remove network feature, it was not working correctly
  • fda36e9 improve the logic of how to write new files, the old one had a bug where the filename was being checked for existence even when you knew the file did not exist (thats why you are writing it)
  • eeeaf34 improve the output of the tables
  • bf36d99 improve the self-update tool so running it now will actually work in a nicer way without the need for that doubleRun mutex thing, which was pretty ugly
  • e2592bd improve these exception classes to be more consistent
  • a499361 in order to support more complex filtering, I just reverted to using the filter in it's entirety rather than play funny games with it
  • 694ca63 incorrect filename case
  • c26d47a incorrect filename case
  • cdd03ad inform the user when nothing is run and not just give back no response at all
  • 2a47908 initialise the stack to empty by default so we avoid some silly little error about it being null unless you manually initialise it
  • c4e8d0d it's not guaranteed this function returns an array
  • e28054e just add these two files because sometimes it's useful and I never want to commit these files anyway
  • 6fb896c let the awscli dockerfile be read from a file instead of hardcoded into the source code
  • 06c4533 listing projects return an array of Project Model objects instead of raw array
  • 36ad08a lists should always default to empty instead of null
  • a39e43b little changes
  • 35420d5 make --debug a standard feature in all tools
  • e68579e make a better way to debug by using parameters to insert into a string without pre-formatting rather than just a complete string which gets colourised and played about with, means you don't get any corrupted output when something in your string just happens to look like a template parameter
  • cbd2672 make a cleaner and clearer way to filter project lists
  • 710d30d make a cleaner way to execute scripts and their dependencies and add a tool to explain what each script run would execute
  • 2aff0db make a fix so ping always uses decimal instead of locale dependent numeric separator
  • 24e638e make a more flexible distro map instead of a fixed piece of code
  • 954cdce make a small change to account for difference between using exec and the new proc_open method that caused some commands to behave slightly differently
  • 96def70 make a way to know if a found container is running or exited
  • cf90ed3 make an aws creds too for wrapping up aws cli commands wiht the right env vars
  • 9421cd0 make change that allow for the tool to be used without installation, if it's specified on the path
  • baccbf9 make consistent with the ddt dns config command
  • 6e2fe32 make everything a tool, it simplifies how to run the code
  • df1cd41 make initDataStore abstract, cause an empty default function is lame
  • 11d7f30 make it easier to detect when docker is not running
  • c6c58e9 make it possible for running a script on every project in an entire group at once, without specifying a single project
  • 93bf2d8 make official the ability for every tool to create an instance of another tool for use in subrequests or similar
  • 6538d59 make some improvements to the list model where it would have the right functionality in the right layer of the class heirarchy
  • 0cb5142 make sure group list is unique afterwards
  • 926140b make sure old code doesn't get into the repo by accident
  • c4fd0c5 make sure str_replace doesn't have null passed cause on php 8.1 it'll fail
  • dd1dfea make sure the list variable is never null, but starting with an empty array
  • 61f68c1 make the DnsMasq and Proxy objects into services, which they are in reality
  • 1df6369 make the basic functionality for controlling the extension configuration
  • 04e8324 make the debugVar function a real thing cause it turns out to be quite useful sometimes
  • e816cdc make the entrypoint tool responsible for handling exceptions, the bootstrap was not the place for this code
  • f40d3e9 make the exception code a bit more logical
  • 5e81b54 make the exists function just return true/false and jiggle around the other code to match up
  • b33e3ef make the ping format more compact
  • 12f1c32 make the tests easier to run
  • 5947e24 make this command rely on autowiring instead
  • 3bd4600 make this exception a bit more controlled instead of too loosely defined
  • 79f0deb make this function a bit more flexible, things are nicer like this
  • f18de36 make this less ambigious
  • a2e4795 make this return an integer number to make comparisons easier
  • 18d9984 merge changes from stash
  • 5bbc212 merge the colours into the text class to get rid of the old bash type definitions
  • 871b923 merge the open source version
  • 75bdb3d migrate all commands to remove the -Command postfix
  • 5086692 migrate the various configuration objects to a new DDT\Config\Sections namespace
  • 45d79ea minor change to test the self updater
  • 2a8e372 minor cleanup for some member variables
  • fa1a13e minor correction
  • ff5b65b minor reformatting
  • 9cbac58 minor reformatting
  • 5c3c756 minor updates to fix against the new autowirer
  • 567cdac more reliable way to detect whether projects need to be upgraded in their configuration
  • a479709 most recent edits
  • f453a71 move all rendering of text into the cli, update how the text renderer gets colours and start to remodel it as an object and not a namespace
  • 6ee13a1 move all the code for these tools into the new objects
  • 38114b0 move all the code from these tools into the new tool objects, even if the code isn't yet usable
  • 6e7e08c move all the shell functionality into the cli, remove all the dead code related to the Text and Shell classes
  • fbac2af move around the debugging code so I can use it to enable/disable the container logging dynamically
  • 8ed5669 move away from individual functions instead to a metadata concept, it's much easier to manage
  • 701a5f0 move getData into the ModelInterface, cause actually all Models of any type should implement this function
  • 9334cfe move list and search functionality into the ProjectListModel where it's more centralised and obvious, then refactor the other code around it
  • d42dfcf move network and volume functionality to their individual objects
  • 6a6a3cd move the array iterator stuff into the ListModel class and fix up the array callback functions to work in a generic way
  • 8b2b135 move the autowire object into the base tool, since it's better to use it like this
  • 1354bf8 move the code which instantiates something into a static function of the container, where it can be reused at least
  • 7d68fef move the exception handling into the bootstrap where it's a bit clearer what to do and less spread about the place
  • 37c7dc5 move the place where the special codes are replaced, so you can do in-place column rendering using the new callbacks as you add rows dynamically
  • 6365e2f move the writing of configuration data out of the proxy object and back into the tool, where it makes more sense
  • a6f0b55 move these exceptions into a namespace
  • 09174f4 move these exceptions to the Autowire namespace
  • a59d691 move user interface elements into the tool instead of the service
  • c0136d5 moved the dependency injection to the constructor instead, making this object easier to use in other tools
  • 20b47c0 much cleaner way to do the same job
  • 0e039ee namespace fixes
  • a2fb527 namespace fixes
  • 5ff0e5e namespace updates
  • 7bffe9b need to acquire the groups as an array in order to implode it
  • ccbf20a need to add it to the interface to let it be useful externally
  • f2a2baa need to implode certain return values so code continues to function ok
  • 154cddc obtaining the list of projects in a group has changed
  • fb64f3d only get the message from the previous exception when one is provided
  • b6094fd only output this in debug mode
  • a2055c8 only ping 10 times cause 20 is excessively slow
  • 6d3a41c only trim from the end of the line, not the beginning (where indentation and purposeful characters might be)
  • 8183ebe only use the decoded json if it's not null
  • 3d6d3a8 optimise how docker container are run
  • c1e4d5a optimise the output for the self updater to be a bit cleverer
  • dfa0dc5 output the changes so the user can see why the project wasn't updated
  • 1e863b1 output the domains information when the proxy is started
  • be7670e partially finished the work on refactoring the project sync functionality
  • 2dcfca3 pass the configured ip address to disable
  • c83620f php 7.2 compatibility
  • ac7901b php 7.2 compatibility
  • 0aafef0 prevent redefinition of constants
  • 80264ac prevent the dns server ip address to be an upstream to itself
  • dc4257c projects are not organised into groups anymore
  • d79ad9f promote the readModel function into the SystemConfig, so other classes can start using it
  • 5c8b858 properly add the domains to the dnsmasq server and reload, and ping them
  • 5bc1212 properly customise this tool cause I left it with the old configuration from the extension tool by accident
  • 6abacf6 properly format multiple lines of text in display boxes
  • 1f070ab properly handle type checks for scalar (non-string) values
  • 0e8ee9a provide filenames instead of directories because it was failing otherwise cause I removed the logic to "auto-fix" the filename
  • 4f52fa1 pull chinoks fixes for the scripts and also implement a bash-friendly urlencode function to replace the use of php
  • a90a84f put better restrictions on under what conditions projects can be added
  • 81a22d1 put the path from the config instead of literally jsut the word "path" lol
  • a89f174 put these exceptions into the right namespace
  • d684629 quite rightly, docker was complaining about the input device not being a TTY, which it's not, it's a forked process under php
  • 05cd6d8 readability improvements
  • ce59022 rearrange the functionality so I can read and write config files a bit more flexibly
  • 4a19883 rearrange things so it's a bit more logical
  • a105e35 rearranging methods
  • 48dc36a reduce the groups to a csv to display in a string
  • df34cde reduce the padding to 5, looks nicer
  • e5270bf refactor ProjectPathListModel against the ListModel2 that's being built
  • d5c0353 refactor a little bit the exec/passthru functions
  • bc4ba23 refactor against the new debug/quiet output channels
  • 7f1eada refactor and implement a way to stop the dnsmasq container
  • 4a0b29a refactor how the autoloader and services are loaded, we don't need all these little files everywhere, it's practically useless
  • 07d8859 refactor out some similar things between the two getMethodArgsXXX functions
  • c0cca7f refactor passthru against the exec method
  • 0df8a1b refactor some of the models to be cleaner and implement add/remove paths
  • 7cac667 refactor the cli to get rid of junk functionality and streamline what I really need
  • 6b28c7d refactor the colours so they can be used in the plista extension
  • b6ce9af refactor the passthru method against exec and start to use the parseErrors method to detect exception conditions
  • 5f61f5b refactor the service configurations into their own namespace and update all the code that depends on them
  • a2a8bf9 refactor the way I interact with the ip and dns tools to work more in the way of capabilities rather than operating systems, which makes things a lot more flexible
  • 237f498 refactor these reflection use cases into the Autowire object
  • f2efbbe refactor this tool so it's constructor doesn't do any work which can throw unnecessary exceptions
  • 6c91428 refactor to use the config() function
  • a66c71e refactored the configuration to use the container instead of magic values
  • e520762 refactoring things to make it possible to create custom named command lines
  • 2c9baa5 reformat the help and use a real array for describing the example instead of a manually typed out one
  • 70fe85e refuse to allow localhost, 127 addresses, cause of the invalid configuration it will result in
  • ec7fa1b register all the commands for all the tools
  • d2ab254 register extensions internally in the entrypoint tool now instead of raw in the bootstrap
  • 091cbfc reimplement many functions of the ddt-project and dependent objects to be more flexible and approachable
  • 54a0519 remove -it from the exec command because we are not using an interactive terminal
  • 2cdf699 remove Docker::run, I only want containers being run through the DockerContainer object
  • fbbcaaa remove a var dump
  • e14500c remove all these old files, they are being refactored
  • be5dc50 remove all this dead code relating to exceptions I don't throw anymore
  • 2c75a39 remove debugging output
  • 023e3bb remove deprecated code and add documentation
  • 4f72eca remove direct object instantiation
  • adae896 remove elipsis to support php 7
  • 9dd3482 remove getToolRoot with getToolPath
  • 719d1be remove is_countable because it's a 7.3 feature
  • 978f242 remove mixed type since in php 7.3 it's not supported
  • 7c1343b remove more quiet/debug logic
  • 02eb38c remove newline
  • d79abfa remove the --dev-debug option from the command line after finding it
  • 6c32e82 remove the NoProjectConfig object, since it became obvious this is not the correct way to deal with this, throw an exception instead
  • 9133be7 remove the cli from the service, services do not (should not), have a user interface
  • bce6b4e remove the defaults, they were put into the container instead
  • d5b648b remove the generator code, cause it wasn't working properly, replace with generic php instead
  • aa4f0dd remove the initColours function call
  • 7dd819e remove the listenChannel function, it was useless in this version
  • a6cfd4c remove the mixed return type here, it breaks php 7.3 compatibility
  • 79a2dad remove the old colour information and replace it with a php version
  • 3fec481 remove the old debug logic into the bootstrap and out of this tools responsibility
  • e0d4c66 remove the old debug/quiet logic
  • df3c69f remove the old quiet logic
  • 2a707a9 remove the second parameter from this function call since it's not certain you'll always want this behaviour
  • 15d4be4 remove the useless instance method, since this is all handled by the container now
  • 94cf5ff remove these two unnecessary interfaces cause the new way to implement these functionalities is through custom methods which do the dirty work
  • dbbdd5e remove these unnecessary imports
  • 6d7677f remove these useless methods about paths
  • 72ef94d remove this checksum file from the repo
  • 77e8d77 remove this dead functionality
  • 3602c3e remove this debugging
  • dc9dfe8 remove this dummy configuration because it breaks things
  • e3e0397 remove this exception from the constructor and put it into the bootstrap instead, makes more sense
  • 5a08b00 remove this old idea about rendering formatted blocks of information
  • c6cd1e6 remove this redundant functionality cause it serves no real purpose
  • 2a3fff4 remove this unused code
  • b3c52ce remove this unused object, it's merged into the setup tool now
  • ade07c0 remove this useless import
  • 9b77a5f remove this useless/unused function
  • 7a89d7a remove trailing comma syntax
  • d972e75 remove trailing comma syntax
  • ab7ce0f remove unnecessary imports
  • 7097b88 rename Extension to ExtensionManager
  • 1cb944f rename name -> script cause it makes more sense and also support running some script functionality here because it helps to simplify the interaction with the shell
  • 34a66d6 rename the Exceptions folder
  • 0727a81 rename the PathConfig class to SystemPath, it's more appropriate
  • ae658a1 rename the print channel into the terminal
  • 503000e rename this exception
  • 1d4ccd4 rename this file to make it more obvious what it is
  • b96303c rename this test set
  • edaeac0 replace debugVar with the Debug class
  • bcc7503 replace most Script::die with Script::failure, since it's more appropriate
  • 2c10771 replace plista-sync with ddt-project-sync
  • 615e7b9 replace some code with getContainer instead
  • f23fe0c replace this deprecated functionality
  • 1005d47 replace with a more robust solution, we don't need the profile to be valid to find it in the config and remove it anyway
  • 11da32a return the id if it was previously set
  • 56f1455 return the systemconfig, even if you don't write to it
  • 7ff79fa revert the tool back to just outputting environment variables
  • db55637 revert these methods back to the old names, it made more sense
  • f476284 rewrite how the config tool uses SystemConfig objects because registered commands are like controller functions now, can be dependency injected
  • 6715b53 rewrite the argument processing because I found a bug where when there is no args, you can't automatically assume to run help, but need to run the default command with no parameters, but this caused a logic error. So I had to rewrite it
  • 6add5ac rewrite the autowirer so it'll dependency inject constructors AND functions and then use this to cleanup the entrypoint and base tool class
  • c637880 rewrite the container setup for linux cause it was wrong in some cases
  • 3d501b7 rewrite the implementation to be much simpler
  • 784f7c4 rewrite the terraform code so it follows the same style as the aws one
  • cc38305 run whatever hooks need to be executed after pulling
  • 654503c satisfy the IDE by saying ext-json is required
  • 03ccd6d set filename as a variable so it's better controlled instead of letting this be a magic string
  • a047a99 set the exit code also when you use passthru
  • cb6d763 set the port with a specific ip address
  • 2c5a3ec set the upstreams to the same dns as the local machine (this prevents cyclic dns configurations)
  • 85aeeed shift some functions around to put all the private functions together
  • d3d858d show error when dns is not running
  • c8fb575 small adjustments to the output from these functions so it renders correctly and can be reused identically
  • da9eb38 small fixes and comment out stuff relating to dns
  • 8903c7b small namespace problem fixed
  • b52c3e7 some little change for testing
  • 066c9bf sometimes there is no project type, but we need a project configuration even if it's empty so the code can be generic
  • fa0d443 spelling mistake
  • ea11eaa split getTool from getToolByClass because it was incorrectly uppercasing the class name depending on the situation
  • eb46508 split the DockerContainer::instance into three methods for the different use cases, get/foreground/background
  • b4a2722 split the network from the dnsmasq object so I can control the dns settings without docker being started, it also makes a lot of sense because I only try to use docker when docker is needed
  • 48ae27c split the self-updater into it's own tool
  • 2190c72 standardise the help output
  • 4b4b077 start refactoring the argument code from the cli object
  • ec5199f start refactoring the channel output code from the CLI object
  • 2c86754 start switching the code to use the ProjectService instead of the ProjectConfig directly cause I'm trying to present access to the Project data through the service layer instead of directly reading and writing to the file, it's safer
  • 1f61d27 start the basis of a php composer wrapper tool
  • f5d75b5 start to rebuild the documentation
  • 5bf13b8 start to rebuild the project sync functionality
  • 7596b81 stop a container before attempting to remove it
  • d71ca3a support $@ in command lines
  • 4349a61 support a csv-with-no-spaces list of scripts to sequentially run instead of just a single script name
  • 77a7981 support an autowiring dependency injector
  • 5875b29 support autowiring arrays from the args
  • 9bd759a support classes which don't have a constructor
  • bffe1f1 support not verifying the tls hostname, sometimes this is useful
  • 1d0e99e support setting arrays into the container without them being mistaken for objects or classes
  • de0e03b support setting extra group/project information into the object so it can be used later for convenience
  • 9869684 support the --overwrite=false flag
  • 5d0c9cb support the new container
  • 261e6f6 support udp and tcp port 53
  • 7ceefe8 support using the container for default values
  • df08766 support using the router dns settings in addition to the docker dns settings for a fallback option
  • cc0d8c3 swap the ip and hostname fields around
  • c5764fa temporarily remove the colour codes from this output, it breaks scripting functionality
  • 6e5e06b test if aws cli is install before attempting to use dockerised versions (lets be smart)
  • 59a812e the IpConfig object should take care of the configuration and support the ability to ping the configured ip address
  • d06ef6b the cli::debug method takes two parameters now in order to formalise how to prepend a debug output "type" string
  • 8b7f9a9 the log functions throw exceptions when they can't be executed now, so we don't need to check them like this
  • 54e88a3 the main config is type system not main
  • 9d4ce31 the method had the wrong name
  • 9c37b36 the name of this tool was wrong
  • 8a5c9cf the old code was really a bit clunky, so this time I decided to make it cleaner
  • 2b9044e the path of the colours.ini file has changed
  • 18749be the quiet flag turns OFF the channel which is enabled by default
  • 36d5ab9 the second parameter of exec is no longer user for obtaining the first line of output, which wasn't really nice functionality in the first place
  • fae12e3 the terminal should do nothing more than output information, not attempt to process or manipulate it
  • 09e9d0e the timeout for the stream to wait was too low for composer and it would timeout before getting any meaningful output
  • be5033a the way of building the argument stream here was not quite correct for all circumstances
  • 5b0dd91 these files should not go into the repo
  • bc3622d these functions return strings, to use type hints on them all
  • d007399 these lines should not be written when the function should be reading. It's not logical
  • 387d03a these methods must be public in order to call them
  • 7ec662e this class changed namespace
  • 2d0f482 this command should use -- as a separator, as given in the message
  • ec15146 this configuration option was moved into the main config
  • 72f286c this exception needs extra information to be useful
  • 168aeb6 this exception no longer accepts a parameter
  • 608e485 this exception should have been in a previous commit about namespacing these exceptions
  • f4b5b10 this feature was not mentioned before
  • ac35ded this file for some reason was not committed with the right case filename
  • 2cc1188 this file for some reason was not committed with the right case filename
  • 59e446b this function should return a boolean
  • f5c8e32 this inter-tool function call requires autowiring
  • ff0459e this is still ugly as shit, but it's better than what it was
  • f97a5ec this logic was a bit confused, clean it up
  • 071ecb9 this method is unused now
  • 439cf17 this tool has to be postfixed with Command or it won't be executed
  • 812c795 this variable should have been assigned
  • e6072b6 this was an unnecessarily complex way to do something simple
  • 34e009b throw a specific error when this is not a git repo
  • 6e740bb throw docker typed exceptions instead of anonymous exceptions
  • 300061c throw exceptions if you are trying to create a ProjectModel for a path that doesn't exist
  • 54cae82 throw exceptions when you can't find the network
  • 7826115 tools which implement __call interfaces have to be handled differently because of how they function and they can't be autowired either :)
  • dd716ef trivial change
  • 31a0f73 trivial change
  • 1a08ada trivial edits
  • 270b1f3 trivial formatting changes
  • be779fc trivial reformatting
  • bb27972 trivial update
  • a2b03fa trivial updates
  • 63b4ab3 trying to build a new argument resolver
  • 73eee3e trying to make compatible with php 7.2 again to run on an ubuntu 18 laptop
  • 7ebb434 tweak output
  • 8eea16f typo in this class name
  • 32fb17b update CLI argument processing to not put a value key when there is none, this sidesteps a confusing scenario where a default "NULL" was being inserted, but what about other times when NULL is actually a valid value?
  • a0010f4 update Execute object to Shell, change Execute::run to Shell::exec
  • b78fada update a little bit how the tool outputs text to make it easier
  • 1a6e401 update a little bit the configuration with regard to toplevel and main
  • 4a64bf2 update a reference to 'table' to Table::class
  • 8ada1c2 update all the tool commands and process them correctly from dash to camel case automatically
  • 47281d5 update because the interface changed
  • 53c24ea update comments
  • 6116c6d update debugging
  • 240620c update docs
  • 0ea74c1 update docs
  • c1e20d7 update docs
  • 17bfd03 update docs
  • 26b4be4 update docs
  • 830ab11 update documentation
  • 9220af2 update documentation and output to be more accurate
  • 2263836 update exception namespaces
  • 3827331 update extensions
  • ceb265f update extensions
  • 21f7999 update how debugging data is output for when user is root or errors are enabled
  • f9189db update how extensions are cloned with the new repostory model object
  • 6fc26e5 update how the debugging text is written
  • 703540d update how the defaults are set, the function it tries to use was removed
  • 0493038 update how the exec obtains the whoami information
  • 5b5dbab update how the git object works, to make it a bit more logical
  • 12d62b5 update how the self-update works because this way it won't run twice
  • 2438c9e update how the start command works, it was incorrect to think you shoud always try to stop a container before starting it
  • f9577f5 update how to add/remove projects/groups
  • f7a0ef5 update how to list all the commands available under run --list
  • de7090e update instructions to make more understandable
  • a1614fa update methods to not use shiftArg but to obtain the parameters through the function args instead
  • 3dcb2a3 update methods to use listSomething instead of getSomethingList
  • bba67ed update shell with the debug functionality
  • 84d1580 update text
  • 47b59ff update the Arr helper object
  • 2aafe1e update the DDT\Config\External namespace to really reflect what it is, which is DDT\Config\Project
  • edfa65e update the backup file names
  • d1d29cf update the clone tool
  • d9e1ca4 update the collection interface to support array indexing
  • c0ec851 update the debugging output so it's more compact
  • f91cf05 update the debugging to take into account that scripts can be an array of scripts instead of just a command line now
  • f447035 update the dns tool with functions to retrieve the ip address and ping it giving a nice little interface
  • 64af229 update the docs for the commands
  • a03ed77 update the getDefaultFilename to be a static because it's more flexible and it's statically defined anyway, so doesn't change anything, but helps simplify the code a bit
  • 7d772b4 update the method to remove the weird null thing I was doing
  • cd93472 update the model clases to have a standard Model postfix
  • f9ee180 update the output for system like statements regarding the tool status
  • 8c42d64 update the profile table to show no in red colour
  • 5ab4dcf update the readme with the correct path
  • fffee31 update the rest of the models
  • d145dd7 update the run and project tool against the new entrypoint
  • d168bc5 update the script names used here
  • 498d105 update the self update tool to include extensions
  • 3bd6bf8 update the setup tool to allow configuration of the tools and projects paths.
  • 7119111 update the support quiet and debug modes
  • fb8e0cd update the terraform script with one which builds a local image to use and add an awscli wrapper so this can be used without needing to install it
  • e5f38b8 update the terraform tool to have the right description
  • fb69cfc update these messages so they're more useful
  • 9c14357 update these model traits and interfaces
  • 34fedd0 update these two methods to use setPath instead of setToolPath
  • d89daa1 update this interfaces namespace
  • d9e7287 update this method to be more accurately descriptive of what it does
  • 4d3cd2f update to make instructions clearer
  • 3542c7a update to refactor against the repository model object
  • 88e3c8c update to reflect the new repository model
  • fbf7495 update to support running containers if the container by name wasn't already found
  • e74b4b6 update to support the new container
  • 8297e79 update to the new network functionality
  • 2071146 update to use the Git object instead of directly calling git itself
  • 4ece629 update to use the new(er) getPaths methods
  • f6bb547 update to using the actual entrypoint method rather than a hardcoded string
  • 91b255e update to using the vd() debug function
  • 149c3a9 update with lots of missing functionaliy
  • 0641751 update with the official image names
  • 5a9cc94 updating text output
  • e3776cc upgrade bootstrap to use the di container
  • 0651e27 upgrade listing projects to use the new key
  • ea3ea62 upgrade the docker configuration and how profiles are stored and implement a tool to hot-sync files to a docker container
  • 23e80ef use a function to obtain the docker container
  • d28f10e use a function to set the tool name
  • 8804d22 use getKey, setKey when appropriate
  • bc5da5b use isReadonly instead of the variable directly
  • 6feb69c use is_callable instead of method_exists because this allows me to use __call interface
  • a191eff use is_file, not file_exists, which also returns true for directories
  • 5798196 use new methods to stop a container
  • 6ec9b17 use realpath to get rid of any relative paths
  • 6f948f4 use the container instead of direct object instantiation
  • 2cb8a50 use the container object instead of the docker object, it's more clear what it's doing
  • 92e24f5 use the container to create some objects cause it's easier than using the old manual construction method
  • 9824b3e use the fromArray method instead, it's safer
  • 7a23403 use the instance methods instead of directly building them with the di-container
  • ba34824 use the instance methods, get rid of all the direct di-container interaction
  • f5b39b5 use the name for the project if given from the command line
  • 9e473dd use the new Project model instead of the raw array
  • e7e0fe2 use the new instance methods to get containers and volumes instead of doing it by hand
  • 5223360 using the wrong function name
  • 40f4bf5 using the wrong variable
  • a18ea35 using the wrong variable in the exception text
  • 92bf020 version 2: go lang implementation
  • 10a72fb we don't do distribution detection like this anymore, we detect tools in addition to testing what PHP_OS is running in corner cases
  • 1a2e5b8 we require at least php 7.4 now
  • afdaae7 when autowiring, allow a function to have default arguments
  • 98f8125 when installing, reset the .ddt-system.json configuration file
  • 49c3736 when listing the tools, if a tool can't be constructed, omit it from the list, but don't crash out
  • 0609929 when the project doesn't exist during the process to add it, we should catch the exception and continue, since this is actually not an error, but expected.
  • 7ba4716 when the top level is empty, it must mean to edit the actual array instead of an element of the array itself
  • 3830441 when using the sudo method, it was not correctly executing when a root user is detected
  • eb346e4 when you try to use a script which doesn't exist, it should say it doesn't, but inform the user what alternatives there are
  • 833b01c whether or not to colour the output for ease of reading
  • b679ae5 write code for this function to know whether the dnsmasq container is running or not
  • edc006e write the basic information needed to start writing a self-updater
  • e291d20 wrong capitalisation
  • 258c042 wrong descriptive names
  • d1d5e6b wrong object
  • bd1c8ad you can't set the type anymore, it's detected automatically
  • 18013eb you can't use the SystemConfig in the constructor, because if you're not installed the system yet, the system config doesn't yet exist. So you have to create it on demand as you need it in the places you need it