]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/commitdiff
Fix and improve doc updater
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 29 Apr 2015 17:23:07 +0000 (19:23 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 29 Apr 2015 17:43:11 +0000 (19:43 +0200)
rpp/blocks/Makefile
rpp/blocks/rpp_update_doc.m

index 5492ff67538a2be972dbad3083ff0232f5dfb355..aba588597604618e7fcffcd50314a9ab766bffbd 100644 (file)
@@ -45,11 +45,11 @@ update-doc: $(HTML)
        matlab -nodesktop -nojvm -r "try, rpp_update_doc('update'); catch ME, disp(getReport(ME)); exit(1); end; exit(0)" | sed -e "s/\x1b\(\[?1[hl]\|[=>]\)//g" | tee update-doc.log
 
 define PRINT_COMMIT_MSG
-(echo "Update block masks by running rpp_update_doc.m"; echo; echo "Changelog:"; sed -n -e '/^Processing rpp_lib/,$$ p' update-doc.log)
+(echo "Update block masks by running rpp_update_doc.m"; echo; echo "Changelog:"; sed -n -e '/^Processing /,$$ p' update-doc.log)
 endef
 
 commit-doc: update-doc
-       $(PRINT_COMMIT_MSG) | git commit -F - rpp_lib.slx
+       $(PRINT_COMMIT_MSG) | git commit -F - $$(git ls-files -m '*.slx')
 
 ################################
 # Block library
index 1632493b72909b32d98c69b5fce323e7c6377521..1475a204d73f0e977e22e572d2d47e939f9b5894 100644 (file)
@@ -30,7 +30,8 @@ block_libs = rpp_get_blocks();
 updated = 0;
 for i=1:length(block_libs),
     block_lib = block_libs{i};
-    open_system(block_lib);
+    last_updated = updated;
+    load_system(block_lib);
     set_param(block_lib, 'Lock', 'off');
     blocks = find_system(block_lib, 'Type', 'block');
     for j=1:length(blocks),
@@ -46,6 +47,9 @@ for i=1:length(block_libs),
         updated = updated + process_param(op, block, 'Name', '--name'); % Name must be changed last!!!
     end
     set_param(block_lib, 'Lock', 'on');
+    if strcmp(op, 'update') && updated ~= last_updated,
+        save_system(block_lib);
+    end
     close_system(block_lib);
 end
 
@@ -58,7 +62,7 @@ function output = run_doc_parse(fn, opts)
         throw(MException('rpp:pandoc_failure', ['Failed to extract doc from ' fn '.c']))
     end
 
-function print_diff(fn, param, old, new)
+function print_diff(fn, param, old, new, diffopts)
     fnold = [fn '.' param '.old'];
     f = fopen(fnold, 'w');
     fprintf(f, '%s', old);
@@ -69,7 +73,7 @@ function print_diff(fn, param, old, new)
     fprintf(f, '%s', new);
     fclose(f);
 
-    [rc, diff] = system(['git --no-pager diff --no-index --word-diff=plain ' fnold ' ' fnnew]);
+    [rc, diff] = system(['git --no-pager diff --no-index ' diffopts ' --word-diff=plain ' fnold ' ' fnnew]);
     disp(diff);
     delete(fnold);
     delete(fnnew);
@@ -88,10 +92,10 @@ function updated = process_param(op, block, param, opts)
     if ~strcmp(old_content, new_content),
         if strcmp(op, 'diff'),
             disp([block ': ' param ' not up-to-date'])
-            print_diff(fn, param, old_content, new_content)
+            print_diff(fn, param, old_content, new_content, '')
         else
             set_param(block, param, new_content)
-            print_diff(fn, param, old_content, new_content)
+            print_diff(fn, param, old_content, new_content, '--no-color')
         end
         updated = 1;
     else