atlassian-cli: rename to appfire-cli; refactor; 9.6.0 -> 12.1.0 (#446966)

This commit is contained in:
Sandro
2025-11-01 19:41:07 +00:00
committed by GitHub
4 changed files with 88 additions and 74 deletions
+87
View File
@@ -0,0 +1,87 @@
{
lib,
stdenv,
fetchzip,
makeBinaryWrapper,
coreutils,
findutils,
jre,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "appfire-cli";
version = "12.1.0";
src = fetchzip {
url = "https://appfire.atlassian.net/wiki/download/attachments/60562669/acli-${finalAttrs.version}-distribution.zip";
hash = "sha256-6p8i5ec8IAygACdsdzP8g5u24mQZ7Ci684xuu/kAADo=";
};
nativeBuildInputs = [ makeBinaryWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/share/{,doc/}appfire-cli
cp -r acli.sh lib $out/share/appfire-cli
cp -r README.txt license $out/share/doc/appfire-cli
ACLI_SHELL=${finalAttrs.passthru.shellNames.${stdenv.hostPlatform.system} or "unsupport"}
if test -f $ACLI_SHELL; then
install -Dm755 $ACLI_SHELL $out/share/appfire-cli/$ACLI_SHELL
fi
substituteInPlace $out/share/appfire-cli/acli.sh \
--replace-fail 'java $' '${lib.getExe jre} $' \
--replace-fail '(find' '(${lib.getExe findutils}' \
--replace-fail dirname ${lib.getExe' coreutils "dirname"} \
--replace-fail uname ${lib.getExe' coreutils "uname"}
makeBinaryWrapper $out/share/appfire-cli/acli.sh $out/bin/acli
runHook postInstall
'';
passthru = {
shellNames = {
"x86_64-linux" = "bin/shell-linux-amd64";
"aarch64-linux" = "bin/shell-linux-arm64";
"x86_64-darwin" = "bin/shell-macos-amd64";
"aarch64-darwin" = "bin/shell-macos-arm64";
};
# versionCheckHook cannot be used because appfire-cli requires $HOME to be set
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "acli -a getClientInfo";
};
};
meta = {
description = "Integrated family of CLIs for Atlassian, Atlassian-related, and other applications";
longDescription = ''
Appfire CLI (ACLI) is an integrated family of CLIs for Atlassian,
Atlassian-related, and other applications.
ACLI provides a consistent and reliable automation platform that allows
users, administrators, script writers, and DevOps developers to perform
tasks, implement business processes, or apply general automation with
Atlassian products.
The CLIs are built on the Atlassian remote APIs and deliver a higher
level, client-based API that is easier to use and more powerful than
the underlying product APIs.
The upstream documentation describes configuring acli by placing
{file}`acli.properties` in the same directory as {file}`acli.sh`.
Since the /nix/store is not writable, you can instead place the file
at {file}`$HOME/acli.properties` to achieve the same effect.
'';
homepage = "https://apps.appf.re/acli";
license = lib.licenses.unfreeRedistributable;
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
maintainers = with lib.maintainers; [ twey ];
mainProgram = "acli";
inherit (jre.meta) platforms;
};
})
-54
View File
@@ -1,54 +0,0 @@
{
lib,
stdenv,
fetchzip,
jre,
}:
stdenv.mkDerivation rec {
pname = "atlassian-cli";
version = "9.6.0";
src = fetchzip {
url = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
sha256 = "sha256-55ydhprVC9NdDMUrKbpSAEQBb9zRYgwOc7k8aP4R89A=";
};
tools = [
"agile"
"bamboo"
"bitbucket"
"confluence"
"csv"
"hipchat"
"jira"
"servicedesk"
"structure"
"tempo"
"trello"
"upm"
];
installPhase = ''
mkdir -p $out/{bin,share/doc/atlassian-cli}
cp -r lib $out/share/java
cp -r README.txt license $out/share/doc/atlassian-cli
for tool in $tools
do
substitute ${./wrapper.sh} $out/bin/$tool \
--subst-var out \
--subst-var-by jre ${jre} \
--subst-var-by tool $tool
chmod +x $out/bin/$tool
done
'';
meta = with lib; {
description = "Integrated family of CLIs for various Atlassian applications";
homepage = "https://bobswift.atlassian.net/wiki/spaces/ACLI/overview";
license = licenses.unfreeRedistributable;
sourceProvenance = with sourceTypes; [ binaryBytecode ];
maintainers = with maintainers; [ twey ];
inherit (jre.meta) platforms;
};
}
-20
View File
@@ -1,20 +0,0 @@
#!/bin/bash
tool=@tool@
user=ATLASSIAN_${tool^^}_USER
host=ATLASSIAN_${tool^^}_HOST
pass=ATLASSIAN_${tool^^}_PASS
[ -f ~/.atlassian-cli ] && source ~/.atlassian-cli
if [ x = ${!user-x} ] || [ x = ${!host-x} ] || [ x = ${!pass-x} ]
then
>&2 echo please define $user, $host, and $pass in '~/.atlassian-cli'
exit 1
fi
@jre@/bin/java \
-jar @out@/share/java/@tool@-cli-* \
--server "${!host}" \
--user "${!user}" \
--password "${!pass}" \
"$@"
+1
View File
@@ -307,6 +307,7 @@ mapAliases {
aseprite-unfree = throw "'aseprite-unfree' has been renamed to/replaced by 'aseprite'"; # Converted to throw 2025-10-27
asitop = throw "'asitop' has been renamed to/replaced by 'macpm'"; # Converted to throw 2025-10-27
asterisk_18 = throw "asterisk_18: Asterisk 18 is end of life and has been removed"; # Added 2025-10-19
atlassian-cli = appfire-cli; # Added 2025-09-29
ats = throw "'ats' has been removed as it is unmaintained for 10 years and broken"; # Added 2025-05-17
AusweisApp2 = throw "'AusweisApp2' has been renamed to/replaced by 'ausweisapp'"; # Converted to throw 2025-10-27
autoconf213 = throw "'autoconf213' has been removed in favor of 'autoconf'"; # Added 2025-07-21