====== perl 剖析 yaml 的套件 ======
* Ubuntu : sudo apt-get install libyaml-perl
===== Example =====
#!/usr/bin/perl
use YAML::Loader;
use Data::Dumper;
# Load a YAML stream of 3 YAML documents into Perl data structures.
my $loader = YAML::Loader->new;
my $hash = $loader->load(<<'...');
stages:
- name: Deploy--DB
iiidevops: deployed-environments
steps:
- applyAppConfig:
answers:
db.gui: true
db.name: todo_db
db.password: templatePassword
db.tag: 13
db.type: postgresql
db.username: iiidevops
git.branch: ${CICD_GIT_BRANCH}
git.commitID: ${CICD_GIT_COMMIT}
git.repoName: ${CICD_GIT_REPO_NAME}
git.url: ${CICD_GIT_URL}
catalogTemplate: cattle-global-data:iii-dev-charts3-db
name: ${CICD_GIT_REPO_NAME}-${CICD_GIT_BRANCH}-db
targetNamespace: ${CICD_GIT_REPO_NAME}
version: 0.3.1
when:
branch:
include:
- master
- name: Deploy--Wait DB deployment
iiidevops: deployed-environments
steps:
- env:
deploy_name: ${CICD_GIT_REPO_NAME}-${CICD_GIT_BRANCH}-db
max_wait: 128
namespace: ${CICD_GIT_REPO_NAME}
envFrom:
- sourceKey: API_TOKEN
sourceName: pipeline-api-key
targetKey: rancher_api_token
- sourceKey: rancher-url
sourceName: rancher
targetKey: rancher_url
runScriptConfig:
image: iiiorg/deployment-waiter:0.0.2
shellScript: rancher login ${rancher_url} -t ${rancher_api_token} --skip-verify; bash /app/run.sh
when:
branch:
include:
- master
...
# Dump the Perl data structures back into YAML.
#print Dumper($hash);
$i=0;
while ($hash->{'stages'}[$i]) {
$hash_t = $hash->{'stages'}[$i];
#print Dumper($hash_t);
print("----- ".$hash_t->{'name'}." ---\n");
print("\t ".$hash_t->{'iiidevops'}." \n");
$i++;
}
執行結果
~$ perl example.pl
----- Deploy--DB ---
deployed-environments
----- Deploy--Wait DB deployment ---
deployed-environments
~$
===== 參考網址 =====
* https://askubuntu.com/questions/667827/how-to-edit-inc-with-latest-library-in-perl
* https://metacpan.org/pod/YAML
{{tag>perl yaml}}