diff --git a/docs/kickstart/file/contains.md b/docs/kickstart/file/contains.md new file mode 100644 index 0000000..c2762d5 --- /dev/null +++ b/docs/kickstart/file/contains.md @@ -0,0 +1,11 @@ +# kickstart.file.contains file_name string_to_search +Searchs for `string_to_search` on `file_name`. +Returns 0 if there the file contains the string, and 1 otherwise. + +### Example + +```bash +$ kickstart.file.contains /etc/groups wheel && echo yup +$ kickstart.file.contains /etc/groups banana || echo nope +``` + diff --git a/docs/kickstart/stream/contains.md b/docs/kickstart/stream/contains.md new file mode 100644 index 0000000..e22ced3 --- /dev/null +++ b/docs/kickstart/stream/contains.md @@ -0,0 +1,11 @@ +# kickstart.stream.contains string_to_search +Searchs for `string_to_search` on STDIN +Returns 0 if there the stream contains the string, and 1 otherwise. + +### Example + +```bash +$ echo weee | kickstart.stream.contains wee && echo yup +$ echo weee | kickstart.stream.contains ahh || echo nope +``` + diff --git a/kickstart/recipes/kickstart/file.sh b/kickstart/recipes/kickstart/file.sh index 3931f47..960de3d 100644 --- a/kickstart/recipes/kickstart/file.sh +++ b/kickstart/recipes/kickstart/file.sh @@ -2,3 +2,7 @@ kickstart.file.link() { rm -rf $2 2>/dev/null ln -s $1 $2 } + +kickstart.file.contains() { + grep -q $2 $1 2>/dev/null +} diff --git a/kickstart/recipes/kickstart/group.sh b/kickstart/recipes/kickstart/group.sh index c7c8cdd..9b2e192 100644 --- a/kickstart/recipes/kickstart/group.sh +++ b/kickstart/recipes/kickstart/group.sh @@ -1,4 +1,4 @@ kickstart.group.create() { kickstart.info "Creating group $1" - grep -q $1 /etc/group || groupadd $1 + kickstart.file.contains /etc/group $1 || groupadd $1 } diff --git a/kickstart/recipes/kickstart/module.sh b/kickstart/recipes/kickstart/module.sh index 0f74d0b..21c098f 100644 --- a/kickstart/recipes/kickstart/module.sh +++ b/kickstart/recipes/kickstart/module.sh @@ -7,7 +7,7 @@ kickstart.module.apply_recipe() { } kickstart.module.apply_() { - local cur_dir=`pwd`; + local cur_dir=`pwd` cd modules/$1 source $3/$2.sh cd $cur_dir diff --git a/kickstart/recipes/kickstart/os.sh b/kickstart/recipes/kickstart/os.sh index f8b50bf..31cf4e4 100644 --- a/kickstart/recipes/kickstart/os.sh +++ b/kickstart/recipes/kickstart/os.sh @@ -1,6 +1,6 @@ kickstart.os() { - ( uname -a | grep -q Ubuntu ) && echo "Ubuntu" - ( uname -a | grep -q Darwin ) && echo "Mac" + uname -a | kickstart.stream.contains Ubuntu && echo "Ubuntu" + uname -a | kickstart.stream.contains Darwin && echo "Mac" } kickstart.os.is() { diff --git a/kickstart/recipes/kickstart/package.sh b/kickstart/recipes/kickstart/package.sh index e02c210..92617a8 100644 --- a/kickstart/recipes/kickstart/package.sh +++ b/kickstart/recipes/kickstart/package.sh @@ -6,8 +6,8 @@ kickstart.package.manager() { kickstart.package.installed() { local pkg_manager=`kickstart.package.manager` - [ $pkg_manager = 'apt-get' ] && dpkg -s $@ >/dev/null 2>&1 && return $? - [ $pkg_manager = 'brew' ] && ! $(brew info $@ | grep -q "Not installed") && return $? + [ $pkg_manager = 'apt-get' ] && dpkg -s "$@" >/dev/null 2>&1 && return $? + [ $pkg_manager = 'brew' ] && ! $(brew info "$@" | kickstart.stream.contains "Not installed") && return $? } kickstart.package.install() { diff --git a/kickstart/recipes/kickstart/profile.sh b/kickstart/recipes/kickstart/profile.sh index e13dd74..b468d3e 100644 --- a/kickstart/recipes/kickstart/profile.sh +++ b/kickstart/recipes/kickstart/profile.sh @@ -15,7 +15,7 @@ kickstart.profile.source_on_configuration_file() { local file=$1 local profile_d=$2 local configuration=$3 - grep -q $file $configuration 2>/dev/null || ( echo "[[ -f $profile_d/$file ]] && source $profile_d/$file" >> $configuration ) + kickstart.file.contains $configuration $file || ( echo "[[ -f $profile_d/$file ]] && source $profile_d/$file" >> $configuration ) } kickstart.profile.location.profile_d() { diff --git a/kickstart/recipes/kickstart/stream.sh b/kickstart/recipes/kickstart/stream.sh new file mode 100644 index 0000000..db5be72 --- /dev/null +++ b/kickstart/recipes/kickstart/stream.sh @@ -0,0 +1,3 @@ +kickstart.stream.contains() { + grep -q $1 2>/dev/null +} diff --git a/kickstart/recipes/kickstart/user.sh b/kickstart/recipes/kickstart/user.sh index ef5fe2d..9ce7960 100644 --- a/kickstart/recipes/kickstart/user.sh +++ b/kickstart/recipes/kickstart/user.sh @@ -3,7 +3,7 @@ kickstart.user.create() { } kickstart.user.is_on_group() { - grep -q $2 <(id -nG $1) + id -nG $1 | kickstart.stream.contains $2 } kickstart.user.add_group() {