Description
Might be some stupid questions but want to see it might help to write other shell script for other potential integrations:
Doppler example
-
In [src/doppler/install.sh] at line 6
COMPLETION wasn't an internal variable (as far as my search goes), and other places in setup-doppler.sh and devcontainer-features.jsoncompletion
were lowercase. it is uppercase here ininstall.sh
And it is set to true at the beginning? But based on the dagger example these options seems to be related between devcontainer-feature.json and script but they are not case sensitive I guess? -
this line checks if the packages listed exists and whether yes or no the output go into
/dev/null
which is discarded? -
In several examples you were all checking file for string name and , like
checkFileForString() {
# make sure the directory exists
dirname "$2" | xargs mkdir -p
if ! grep -sq "$1" "$2"; then
echo "$1" >> "$2"
fi
}
but at doppler example this function wasn't being used, is this a function frequently used just as a good utility function for inventory files like ansible/terraform?
- why is clean up needed here? here just a good habbit so it doesn't conflict if new key set up exists?
Dagger example
- docker-in-docker and docker-outside-of-docker
I am slightly confused at the difference between docker-in-docker and docker-outside-of-docker, people has told me running docker inside docker is less performant, is it a recommendation or very case specific?
Atuin example
- Why Atuin?
Why is Atuin needed? why nothistory
? because people can have a reference to look up to without SSH into the terminal?
Best practice
What are the things to consider as good practice when writing shell script for remote host?