summaryrefslogtreecommitdiffstats
path: root/tools/devassistant/assistants/crt/c/openlmi.yaml
blob: d9d81a51e84856f29d1520ec28a4198c33c2ae87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
openlmi:
  fullname: OpenLMI
  description: OpenLMI assistant will help you create an OpenLMI provider and install necessary dependencies.

  dependencies:
  - use: super.dependencies
  - rpm: ['gcc', 'glibc-devel', 'openlmi-providers-devel', 'openlmi-indicationmanager-libs-devel', 'python-sphinx-theme-openlmi', 'cmake', 'sblim-cmpi-devel', 'konkretcmpi-devel']

  dependencies_eclipse:
  - use: eclipse.dependencies_c

  dependencies_vim:
  - use: vim.dependencies

  args:
#    name:
#      use: common_args

    vim:
      snippet: vim

    eclipse:
      snippet: eclipse

    github:
      snippet: common_args

  files:
    csources: &csources
      source: .

  run:
  - $dirname: $(dirname "$name")
  - $basename: $(basename "$name")
  - $lbasename: $(basename "$name" | tr '[A-Z]' '[a-z]')
  - log_i: "Project name will be converted to lowercase letters ($lbasename)"
  - $lowername: $(echo "$dirname/$lbasename")
  - if not $(ls "$lowername"):
    - log_i: 'Copying c source tree to project destination'
    - cl_i: cp -r *csources "$lowername"
    - dda_c: "$lowername"
    - cl: cd "$lowername"

    # for some reason the \n newlines are often parsed badly (ignored), this doesn't seem to happen with \r newlines
    # https://bugzilla.redhat.com/show_bug.cgi?id=1061207
    - for $i in $(find -type f -name '*.tpl' -printf '%p\r'):
      - log_i: "Processing file $i..."
      - jinja_render:
          template:
            source: $i
          destination: $(pwd)
          data:
            PROJECT_NAME: $basename

    - cl: for j in `find -name '*{{PROJECT_NAME}}*'`; do mv "$j" "`echo $j | sed 's/{{PROJECT_NAME}}/$basename/'`"; done
    - cl: find -name '*.tpl' -delete
    - use: git_init_add_commit
  - else:
    - cl: cd "$lowername"
    - log_i: 'Project already exists'

  - log_i: 'Running cmake'
  - cl_i: mkdir build
  - cl_i: cd build
  - cl_i: cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=0
  - cl_i: make clean
  - log_i: 'Compiling sources'
  - cl_i: make
  - cl_i: cd ..
  - if defined $vim:
    - use: vim.run
  - if $eclipse:
    - use: eclipse.run_c
  - if defined $github:
    - log_i: "Push to GitHub repository"
    - github: create_and_push

  - log_i: 'OpenLMI provider sources have been generated, remember it''s just a skeleton'
  - log_i: 'that should be filled in order to make the provider usable. Specifically classes'
  - log_i: 'in MOF files and corresponding code in the generated skeleton.'
  - log_i: ''
  - log_i: 'Have a look at http://www.openlmi.org/development website for further instructions'
  - log_i: 'and examples.'
  - log_i: ''
  - log_i: 'To install the sources, run "make install" in the build directory. Provider'
  - log_i: 'registration is need to be done as a next step, have a look at "make help" and'
  - log_i: 'related "register-XXX" and "unregister-XXX" make targets.'