diff --git a/pkgs/by-name/od/odoo/update.sh b/pkgs/by-name/od/odoo/update.sh index e8348e470c29..2265f9048c0e 100755 --- a/pkgs/by-name/od/odoo/update.sh +++ b/pkgs/by-name/od/odoo/update.sh @@ -1,10 +1,15 @@ #!/usr/bin/env nix-shell #!nix-shell -i bash -p curl gnused nix coreutils nix-prefetch +# shellcheck shell=bash set -euo pipefail -VERSION="${1:-18.0}" # must be incremented manually -echo $VERSION +SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")" +PKG=$(basename "$SCRIPT_DIR") + +LATEST="18" # increment manually +VERSION="${PKG/#odoo}" +VERSION="${VERSION:-$LATEST}.0" RELEASE="$( curl "https://nightly.odoo.com/$VERSION/nightly/src/" | @@ -13,15 +18,15 @@ RELEASE="$( )" latestVersion="$VERSION.$RELEASE" -currentVersion=$(nix-instantiate --eval -E "with import ./. {}; odoo.version or (lib.getVersion odoo)" | tr -d '"') +currentVersion=$(nix-instantiate --eval -E "with import ./. {}; $PKG.version or (lib.getVersion $PKG)" | tr -d '"') if [[ "$currentVersion" == "$latestVersion" ]]; then - echo "odoo is up-to-date: $currentVersion" + echo "$PKG is up-to-date: $currentVersion" exit 0 fi -cd "$(dirname "${BASH_SOURCE[0]}")" +cd "$SCRIPT_DIR" sed -ri "s| hash.+ # odoo| hash = \"$(nix-prefetch -q fetchzip --option extra-experimental-features flakes --url "https://nightly.odoo.com/${VERSION}/nightly/src/odoo_${latestVersion}.zip")\"; # odoo|g" package.nix -sed -ri "s|odoo_version = .+;|odoo_version = \"$VERSION\"|" package.nix -sed -ri "s|odoo_release = .+;|odoo_release = \"$RELEASE\"|" package.nix +sed -ri "s|odoo_version = .+|odoo_version = \"$VERSION\";|" package.nix +sed -ri "s|odoo_release = .+|odoo_release = \"$RELEASE\";|" package.nix diff --git a/pkgs/by-name/od/odoo15/package.nix b/pkgs/by-name/od/odoo15/package.nix index 60d1d89b6385..be0f9a690660 100644 --- a/pkgs/by-name/od/odoo15/package.nix +++ b/pkgs/by-name/od/odoo15/package.nix @@ -98,6 +98,7 @@ in python.pkgs.buildPythonApplication rec { dontStrip = true; passthru = { + updateScript = ./update.sh; tests = { inherit (nixosTests) odoo15; }; }; diff --git a/pkgs/by-name/od/odoo15/update.sh b/pkgs/by-name/od/odoo15/update.sh new file mode 100755 index 000000000000..2265f9048c0e --- /dev/null +++ b/pkgs/by-name/od/odoo15/update.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused nix coreutils nix-prefetch +# shellcheck shell=bash + +set -euo pipefail + +SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")" +PKG=$(basename "$SCRIPT_DIR") + +LATEST="18" # increment manually +VERSION="${PKG/#odoo}" +VERSION="${VERSION:-$LATEST}.0" + +RELEASE="$( + curl "https://nightly.odoo.com/$VERSION/nightly/src/" | + sed -nE 's/.*odoo_'"$VERSION"'.(20[0-9]{6}).tar.gz.*/\1/p' | + tail -n 1 +)" + +latestVersion="$VERSION.$RELEASE" +currentVersion=$(nix-instantiate --eval -E "with import ./. {}; $PKG.version or (lib.getVersion $PKG)" | tr -d '"') + +if [[ "$currentVersion" == "$latestVersion" ]]; then + echo "$PKG is up-to-date: $currentVersion" + exit 0 +fi + +cd "$SCRIPT_DIR" + +sed -ri "s| hash.+ # odoo| hash = \"$(nix-prefetch -q fetchzip --option extra-experimental-features flakes --url "https://nightly.odoo.com/${VERSION}/nightly/src/odoo_${latestVersion}.zip")\"; # odoo|g" package.nix +sed -ri "s|odoo_version = .+|odoo_version = \"$VERSION\";|" package.nix +sed -ri "s|odoo_release = .+|odoo_release = \"$RELEASE\";|" package.nix diff --git a/pkgs/by-name/od/odoo16/package.nix b/pkgs/by-name/od/odoo16/package.nix index 4f5c16616fae..b2acd426cf60 100644 --- a/pkgs/by-name/od/odoo16/package.nix +++ b/pkgs/by-name/od/odoo16/package.nix @@ -80,6 +80,7 @@ in python.pkgs.buildPythonApplication rec { dontStrip = true; passthru = { + updateScript = ./update.sh; tests = { inherit (nixosTests) odoo; }; diff --git a/pkgs/by-name/od/odoo16/update.sh b/pkgs/by-name/od/odoo16/update.sh new file mode 100755 index 000000000000..2265f9048c0e --- /dev/null +++ b/pkgs/by-name/od/odoo16/update.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused nix coreutils nix-prefetch +# shellcheck shell=bash + +set -euo pipefail + +SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")" +PKG=$(basename "$SCRIPT_DIR") + +LATEST="18" # increment manually +VERSION="${PKG/#odoo}" +VERSION="${VERSION:-$LATEST}.0" + +RELEASE="$( + curl "https://nightly.odoo.com/$VERSION/nightly/src/" | + sed -nE 's/.*odoo_'"$VERSION"'.(20[0-9]{6}).tar.gz.*/\1/p' | + tail -n 1 +)" + +latestVersion="$VERSION.$RELEASE" +currentVersion=$(nix-instantiate --eval -E "with import ./. {}; $PKG.version or (lib.getVersion $PKG)" | tr -d '"') + +if [[ "$currentVersion" == "$latestVersion" ]]; then + echo "$PKG is up-to-date: $currentVersion" + exit 0 +fi + +cd "$SCRIPT_DIR" + +sed -ri "s| hash.+ # odoo| hash = \"$(nix-prefetch -q fetchzip --option extra-experimental-features flakes --url "https://nightly.odoo.com/${VERSION}/nightly/src/odoo_${latestVersion}.zip")\"; # odoo|g" package.nix +sed -ri "s|odoo_version = .+|odoo_version = \"$VERSION\";|" package.nix +sed -ri "s|odoo_release = .+|odoo_release = \"$RELEASE\";|" package.nix diff --git a/pkgs/by-name/od/odoo17/update.sh b/pkgs/by-name/od/odoo17/update.sh new file mode 100755 index 000000000000..2265f9048c0e --- /dev/null +++ b/pkgs/by-name/od/odoo17/update.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused nix coreutils nix-prefetch +# shellcheck shell=bash + +set -euo pipefail + +SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")" +PKG=$(basename "$SCRIPT_DIR") + +LATEST="18" # increment manually +VERSION="${PKG/#odoo}" +VERSION="${VERSION:-$LATEST}.0" + +RELEASE="$( + curl "https://nightly.odoo.com/$VERSION/nightly/src/" | + sed -nE 's/.*odoo_'"$VERSION"'.(20[0-9]{6}).tar.gz.*/\1/p' | + tail -n 1 +)" + +latestVersion="$VERSION.$RELEASE" +currentVersion=$(nix-instantiate --eval -E "with import ./. {}; $PKG.version or (lib.getVersion $PKG)" | tr -d '"') + +if [[ "$currentVersion" == "$latestVersion" ]]; then + echo "$PKG is up-to-date: $currentVersion" + exit 0 +fi + +cd "$SCRIPT_DIR" + +sed -ri "s| hash.+ # odoo| hash = \"$(nix-prefetch -q fetchzip --option extra-experimental-features flakes --url "https://nightly.odoo.com/${VERSION}/nightly/src/odoo_${latestVersion}.zip")\"; # odoo|g" package.nix +sed -ri "s|odoo_version = .+|odoo_version = \"$VERSION\";|" package.nix +sed -ri "s|odoo_release = .+|odoo_release = \"$RELEASE\";|" package.nix